OSDN Git Service

必要のないクラスを削除し,クラスの整理を行った.
authorHaruaki Tamada <tamada@cc.kyoto-su.ac.jp>
Wed, 13 Apr 2011 08:45:06 +0000 (17:45 +0900)
committerHaruaki Tamada <tamada@cc.kyoto-su.ac.jp>
Wed, 13 Apr 2011 08:45:06 +0000 (17:45 +0900)
285 files changed:
.gitignore
pom.xml
src/docs/extends_stigmata.pptx [new file with mode: 0755]
src/main/java/jp/sourceforge/stigmata/ApplicationInitializationError.java
src/main/java/jp/sourceforge/stigmata/Birthmark.java
src/main/java/jp/sourceforge/stigmata/BirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/BirthmarkComparisonFailedException.java
src/main/java/jp/sourceforge/stigmata/BirthmarkContext.java
src/main/java/jp/sourceforge/stigmata/BirthmarkElement.java
src/main/java/jp/sourceforge/stigmata/BirthmarkElementClassNotFoundException.java
src/main/java/jp/sourceforge/stigmata/BirthmarkEngine.java
src/main/java/jp/sourceforge/stigmata/BirthmarkEnvironment.java
src/main/java/jp/sourceforge/stigmata/BirthmarkException.java
src/main/java/jp/sourceforge/stigmata/BirthmarkExtractionFailedException.java
src/main/java/jp/sourceforge/stigmata/BirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/BirthmarkPreprocessor.java
src/main/java/jp/sourceforge/stigmata/BirthmarkSet.java
src/main/java/jp/sourceforge/stigmata/BirthmarkSpiComparator.java
src/main/java/jp/sourceforge/stigmata/BirthmarkStoreException.java
src/main/java/jp/sourceforge/stigmata/BirthmarkStoreTarget.java
src/main/java/jp/sourceforge/stigmata/BirthmarkTypeMismatchException.java
src/main/java/jp/sourceforge/stigmata/ComparisonMethod.java
src/main/java/jp/sourceforge/stigmata/ComparisonPair.java
src/main/java/jp/sourceforge/stigmata/ComparisonPairElement.java
src/main/java/jp/sourceforge/stigmata/ComparisonPairFilter.java
src/main/java/jp/sourceforge/stigmata/ComparisonPairFilterSet.java
src/main/java/jp/sourceforge/stigmata/ComparisonResultSet.java
src/main/java/jp/sourceforge/stigmata/ExtractionResultSet.java
src/main/java/jp/sourceforge/stigmata/ExtractionTarget.java
src/main/java/jp/sourceforge/stigmata/ExtractionUnit.java
src/main/java/jp/sourceforge/stigmata/ExtractorNotFoundException.java
src/main/java/jp/sourceforge/stigmata/FilterNotFoundException.java
src/main/java/jp/sourceforge/stigmata/Main.java
src/main/java/jp/sourceforge/stigmata/Stigmata.java
src/main/java/jp/sourceforge/stigmata/StigmataCommand.java
src/main/java/jp/sourceforge/stigmata/birthmarks/ASMBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/AbstractBirthmark.java
src/main/java/jp/sourceforge/stigmata/birthmarks/AbstractBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/AbstractBirthmarkPreprocessor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/AbstractBirthmarkService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/BirthmarkExtractVisitor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/BirthmarkService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/FrequencyBirthmark.java
src/main/java/jp/sourceforge/stigmata/birthmarks/FrequencyBirthmarkElement.java
src/main/java/jp/sourceforge/stigmata/birthmarks/NullBirthmarkElement.java
src/main/java/jp/sourceforge/stigmata/birthmarks/PlainBirthmark.java
src/main/java/jp/sourceforge/stigmata/birthmarks/ValueCountable.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/AbstractBirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/AbstractBirthmarkComparatorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/CosineSimilarityBirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/CosineSimilarityBirthmarkComparatorService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/DPMatchingBirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/DPMatchingBirthmarkComparatorService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/EditDistanceBirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/EditDistanceBirthmarkComparatorService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/ExtendedEditDistanceBirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/ExtendedEditDistanceBirthmarkComparatorService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/LogicalAndBirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/LogicalAndBirthmarkComparatorService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/PlainBirthmarkComparator.java
src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/PlainBirthmarkComparatorService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/cvfv/ConstantValueOfFieldVariableBirthmarkExtractVisitor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/cvfv/ConstantValueOfFieldVariableBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/cvfv/ConstantValueOfFieldVariableBirthmarkExtractorService.java [moved from src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/ConstantValueOfFieldVariableBirthmarkExtractorService.java with 53% similarity]
src/main/java/jp/sourceforge/stigmata/birthmarks/cvfv/ConstantValueOfFieldVariableBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/cvfv/TypeAndValueBirthmarkElement.java
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/AbstractBirthmarkExtractorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/BirthmarkExtractorFactory.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/FrequencyMethodCallBirthmarkExtractorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/FrequencyUsedClassesBirthmarkExtractorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/InheritanceStructureBirthmarkExtractorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/KGramBasedBirthmarkExtractorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/SequentialMethodCallBirthmarkExtractorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/UsedClassesBirthmarkExtractorService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/fmc/FrequencyMethodCallBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/fmc/FrequencyMethodCallBirthmarkExtractorService.java [new file with mode: 0644]
src/main/java/jp/sourceforge/stigmata/birthmarks/fmc/FrequencyMethodCallBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/fuc/FrequencyUsedClassesBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/fuc/FrequencyUsedClassesBirthmarkExtractorService.java [new file with mode: 0644]
src/main/java/jp/sourceforge/stigmata/birthmarks/fuc/FrequencyUsedClassesBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractVisitor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractorService.java [new file with mode: 0644]
src/main/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGram.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkElement.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkExtractVisitor.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkExtractor.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBuilder.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/OpcodeExtractionMethodVisitor.java [deleted file]
src/main/java/jp/sourceforge/stigmata/birthmarks/smc/MethodCallBirthmarkElement.java
src/main/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractVisitor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractorService.java [new file with mode: 0644]
src/main/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmark.java
src/main/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractVisitor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractor.java
src/main/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractorService.java [new file with mode: 0644]
src/main/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/command/AbstractStigmataCommand.java
src/main/java/jp/sourceforge/stigmata/command/CompareCommand.java
src/main/java/jp/sourceforge/stigmata/command/ExportConfigCommand.java
src/main/java/jp/sourceforge/stigmata/command/ExtractCommand.java
src/main/java/jp/sourceforge/stigmata/command/GuiCommand.java
src/main/java/jp/sourceforge/stigmata/command/HelpCommand.java
src/main/java/jp/sourceforge/stigmata/command/InstallCommand.java
src/main/java/jp/sourceforge/stigmata/command/LicenseCommand.java
src/main/java/jp/sourceforge/stigmata/command/ListBirthmarksCommand.java
src/main/java/jp/sourceforge/stigmata/command/StigmataCommandFactory.java
src/main/java/jp/sourceforge/stigmata/command/UninstallCommand.java
src/main/java/jp/sourceforge/stigmata/command/VersionCommand.java
src/main/java/jp/sourceforge/stigmata/event/BirthmarkEngineAdapter.java
src/main/java/jp/sourceforge/stigmata/event/BirthmarkEngineEvent.java
src/main/java/jp/sourceforge/stigmata/event/BirthmarkEngineListener.java
src/main/java/jp/sourceforge/stigmata/event/OperationType.java
src/main/java/jp/sourceforge/stigmata/event/WarningMessages.java
src/main/java/jp/sourceforge/stigmata/filter/AbstractComparisonPairFilter.java
src/main/java/jp/sourceforge/stigmata/filter/AbstractComparisonPairFilterService.java [deleted file]
src/main/java/jp/sourceforge/stigmata/filter/BirthmarkElementCountComparisonPairFilter.java
src/main/java/jp/sourceforge/stigmata/filter/BirthmarkElementCountComparisonPairFilterService.java
src/main/java/jp/sourceforge/stigmata/filter/ComparisonPairFilterManager.java
src/main/java/jp/sourceforge/stigmata/filter/Criterion.java
src/main/java/jp/sourceforge/stigmata/filter/FilterTarget.java
src/main/java/jp/sourceforge/stigmata/filter/FilteredComparisonResultSet.java
src/main/java/jp/sourceforge/stigmata/filter/SimilarityComparisonPairFilter.java
src/main/java/jp/sourceforge/stigmata/filter/SimilarityComparisonPairFilterService.java
src/main/java/jp/sourceforge/stigmata/filter/TargetNameComparisonPairFilter.java
src/main/java/jp/sourceforge/stigmata/filter/TargetNameComparisonPairFilterService.java
src/main/java/jp/sourceforge/stigmata/filter/TotalElementCountComparisonPairFilter.java
src/main/java/jp/sourceforge/stigmata/filter/TotalElementCountComparisonPairFilterService.java
src/main/java/jp/sourceforge/stigmata/hook/AbstractStigmataHookService.java
src/main/java/jp/sourceforge/stigmata/hook/MultipleStigmataHook.java
src/main/java/jp/sourceforge/stigmata/hook/Phase.java
src/main/java/jp/sourceforge/stigmata/hook/StigmataHook.java
src/main/java/jp/sourceforge/stigmata/hook/StigmataHookManager.java
src/main/java/jp/sourceforge/stigmata/hook/StigmataRuntimeHook.java
src/main/java/jp/sourceforge/stigmata/printer/AbstractBirthmarkServicePrinter.java
src/main/java/jp/sourceforge/stigmata/printer/AbstractComparisonPairPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/AbstractComparisonResultSetPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/AbstractExtractionResultSetPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/BirthmarkServicePrinter.java
src/main/java/jp/sourceforge/stigmata/printer/ComparisonPairPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/ComparisonResultSetPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/ExtractionResultSetPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/PrinterManager.java
src/main/java/jp/sourceforge/stigmata/printer/csv/BirthmarkServiceCsvPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/csv/ComparisonResultSetCsvPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/csv/CsvResultPrinterService.java
src/main/java/jp/sourceforge/stigmata/printer/csv/ExtractionResultSetCsvPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/xml/BirthmarkServiceXmlPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/xml/ComparisonResultSetXmlPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/xml/ExtractionResultSetXmlPrinter.java
src/main/java/jp/sourceforge/stigmata/printer/xml/XmlResultPrinterService.java
src/main/java/jp/sourceforge/stigmata/resolvers/StigmataHomeManager.java [changed mode: 0644->0755]
src/main/java/jp/sourceforge/stigmata/result/AbstractComparisonResultSet.java
src/main/java/jp/sourceforge/stigmata/result/AbstractExtractionResultSet.java
src/main/java/jp/sourceforge/stigmata/result/CertainPairComparisonResultSet.java
src/main/java/jp/sourceforge/stigmata/result/MemoryExtractedBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/result/MemoryExtractionResultSet.java
src/main/java/jp/sourceforge/stigmata/result/RDBExtractedBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/result/RDBExtractionResultSet.java
src/main/java/jp/sourceforge/stigmata/result/RoundRobinComparisonResultSet.java
src/main/java/jp/sourceforge/stigmata/result/SingleExtractionResultSet.java
src/main/java/jp/sourceforge/stigmata/result/XmlFileExtractedBirthmarkService.java
src/main/java/jp/sourceforge/stigmata/result/XmlFileExtractionResultSet.java
src/main/java/jp/sourceforge/stigmata/result/history/ExtractedBirthmarkHistory.java
src/main/java/jp/sourceforge/stigmata/result/history/ExtractedBirthmarkServiceManager.java
src/main/java/jp/sourceforge/stigmata/result/history/RDBExtractedBirthmarkHistory.java
src/main/java/jp/sourceforge/stigmata/result/history/XmlFileExtractedBirthmarkHistory.java
src/main/java/jp/sourceforge/stigmata/spi/AbstractServiceProvider.java [deleted file]
src/main/java/jp/sourceforge/stigmata/spi/BirthmarkComparatorService.java [moved from src/main/java/jp/sourceforge/stigmata/spi/BirthmarkComparatorSpi.java with 54% similarity]
src/main/java/jp/sourceforge/stigmata/spi/BirthmarkExtractorService.java [moved from src/main/java/jp/sourceforge/stigmata/spi/BirthmarkExtractorSpi.java with 55% similarity]
src/main/java/jp/sourceforge/stigmata/spi/BirthmarkService.java [new file with mode: 0644]
src/main/java/jp/sourceforge/stigmata/spi/BirthmarkSpi.java [deleted file]
src/main/java/jp/sourceforge/stigmata/spi/ComparisonPairFilterService.java [moved from src/main/java/jp/sourceforge/stigmata/spi/ComparisonPairFilterSpi.java with 50% similarity]
src/main/java/jp/sourceforge/stigmata/spi/ExtractedBirthmarkService.java [moved from src/main/java/jp/sourceforge/stigmata/spi/ExtractedBirthmarkSpi.java with 87% similarity]
src/main/java/jp/sourceforge/stigmata/spi/ReflectedBirthmarkService.java [new file with mode: 0644]
src/main/java/jp/sourceforge/stigmata/spi/ResultPrinterService.java [moved from src/main/java/jp/sourceforge/stigmata/spi/ResultPrinterSpi.java with 88% similarity]
src/main/java/jp/sourceforge/stigmata/spi/ServiceProvider.java [deleted file]
src/main/java/jp/sourceforge/stigmata/spi/StigmataHookService.java [moved from src/main/java/jp/sourceforge/stigmata/spi/StigmataHookSpi.java with 84% similarity]
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkDefinitionPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkExtractionResultPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkSelectablePane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkSelection.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkSelectionCheckSetPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkSelectionListPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkServiceListCellRenderer.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkServiceListener.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkTree.java
src/main/java/jp/sourceforge/stigmata/ui/swing/BirthmarkTreeNode.java
src/main/java/jp/sourceforge/stigmata/ui/swing/ClassNameObfuscator.java
src/main/java/jp/sourceforge/stigmata/ui/swing/ClasspathSettingsPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/ClippedLRListCellRenderer.java
src/main/java/jp/sourceforge/stigmata/ui/swing/CompareTableCellRenderer.java
src/main/java/jp/sourceforge/stigmata/ui/swing/ControlPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/DataChangeListener.java
src/main/java/jp/sourceforge/stigmata/ui/swing/ExtensionFilter.java
src/main/java/jp/sourceforge/stigmata/ui/swing/ExtractedHistoryPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/FileIOManager.java
src/main/java/jp/sourceforge/stigmata/ui/swing/FilterManagementPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/FilterSelectionPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/GUIUtility.java
src/main/java/jp/sourceforge/stigmata/ui/swing/PairComparisonPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/PairComparisonResultSetPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/PopupButton.java
src/main/java/jp/sourceforge/stigmata/ui/swing/PropertyEditPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/RoundRobinComparisonResultPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/StigmataFrame.java
src/main/java/jp/sourceforge/stigmata/ui/swing/TargetSelectionPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/UneditableDefaultTableModel.java
src/main/java/jp/sourceforge/stigmata/ui/swing/UnsupportedFormatException.java
src/main/java/jp/sourceforge/stigmata/ui/swing/WellknownClassesSettingsPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/AboutAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/ChangeColorAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/LicenseAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/LinkFollower.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/OpenSettingDirAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/SaveAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/ShowTextAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/actions/UpdateBirthmarkCellColorAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/AbstractComparisonPairFilterComponentService.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/BirthmarkElementCountComparisonPairFilterComponentService.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/ComparisonPairFilterComponentService.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/ComparisonPairFilterListener.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/ComparisonPairFilterPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/ComparisonPairFilterRetainable.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/FilterEditingPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/FilterSetDefinitionPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/SimilarityComparisonPairFilterComponentService.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/TargetNameComparisonPairFilterComponentService.java
src/main/java/jp/sourceforge/stigmata/ui/swing/filter/TotalElementCountComparisonPairFilterComponentService.java
src/main/java/jp/sourceforge/stigmata/ui/swing/graph/SimilarityDistributionGraphPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/mds/LabelMap.java
src/main/java/jp/sourceforge/stigmata/ui/swing/mds/MdsImageExporter.java
src/main/java/jp/sourceforge/stigmata/ui/swing/mds/MdsItemsLocationExporter.java
src/main/java/jp/sourceforge/stigmata/ui/swing/mds/MdsViewerPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/mds/OpenItemsAction.java
src/main/java/jp/sourceforge/stigmata/ui/swing/tab/EditableGlassPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/tab/EditableTabbedPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/tab/EditableTabbedPaneFocusTraversalPolicy.java
src/main/java/jp/sourceforge/stigmata/utils/ArrayIterator.java
src/main/java/jp/sourceforge/stigmata/utils/AsciiDataWritable.java
src/main/java/jp/sourceforge/stigmata/utils/BinaryDataWritable.java
src/main/java/jp/sourceforge/stigmata/utils/ConfigFileExporter.java
src/main/java/jp/sourceforge/stigmata/utils/ConfigFileImporter.java
src/main/java/jp/sourceforge/stigmata/utils/FullyClassName.java
src/main/java/jp/sourceforge/stigmata/utils/HermesUtility.java
src/main/java/jp/sourceforge/stigmata/utils/LocalizedDescriptionManager.java
src/main/java/jp/sourceforge/stigmata/utils/MultipleIterator.java
src/main/java/jp/sourceforge/stigmata/utils/NullIterator.java
src/main/java/jp/sourceforge/stigmata/utils/Utility.java
src/main/java/jp/sourceforge/stigmata/utils/WellknownClassJudgeRule.java
src/main/java/jp/sourceforge/stigmata/utils/WellknownClassManager.java
src/main/resources/META-INF/birthmark-1.0.dtd
src/main/resources/META-INF/license.txt.ja
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkComparatorService [moved from src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkComparatorSpi with 100% similarity]
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkExtractorService [new file with mode: 0644]
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkExtractorSpi [deleted file]
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkService [moved from src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkSpi with 86% similarity]
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.ComparisonPairFilterService [moved from src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi with 100% similarity]
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.ExtractedBirthmarkService [moved from src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.ExtractedBirthmarkSpi with 100% similarity]
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.ResultPrinterService [moved from src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.ResultPrinterSpi with 100% similarity]
src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.StigmataHookService [moved from src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.StigmataHookSpi with 100% similarity]
src/main/resources/META-INF/stigmata-4.0.dtd
src/main/resources/resources/about.html
src/main/resources/resources/about.html.ja
src/main/resources/resources/messages.properties
src/main/resources/resources/messages_ja.source
src/main/resources/resources/stigmata.xml
src/test/java/jp/sourceforge/stigmata/ServiceListTest.java
src/test/java/jp/sourceforge/stigmata/StigmataTest.java
src/test/java/jp/sourceforge/stigmata/birthmarks/BirthmarkCompareTest.java
src/test/java/jp/sourceforge/stigmata/birthmarks/cvfv/CVFVBirthmarkExtractorTest.java
src/test/java/jp/sourceforge/stigmata/birthmarks/is/ISBirthmarkExtractorTest.java [deleted file]
src/test/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractorTest.java [new file with mode: 0644]
src/test/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramTest.java [deleted file]
src/test/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractorTest.java [new file with mode: 0644]
src/test/java/jp/sourceforge/stigmata/birthmarks/smc/SmcBirthmarkExtractorTest.java [deleted file]
src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UCBirthmarkExtractorTest.java [deleted file]
src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractorTest.java [new file with mode: 0644]
src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkServiceTest.java [new file with mode: 0644]
src/test/resources/resources/HelloWorldFrame.class [new file with mode: 0644]
src/test/resources/resources/HelloWorldFrame.java [new file with mode: 0644]

index eb5a316..f57902c 100644 (file)
@@ -1 +1,6 @@
+.classpath
+.djunitplugin
+.project
+.settings
 target
+jcoverage.ser
diff --git a/pom.xml b/pom.xml
index b7e052e..d768e4b 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -4,8 +4,8 @@
   <modelVersion>4.0.0</modelVersion>\r
   <groupId>jp.sourceforge</groupId>\r
   <artifactId>stigmata</artifactId>\r
-  <version>2.0.1-SNAPSHOT</version>\r
-  <name>stigmata</name>\r
+  <version>3.0.0-SNAPSHOT</version>\r
+  <name>Stigmata</name>\r
   <description>Java birthmark toolkit</description>\r
   <url>http://stigmata.sourceforge.jp/</url>\r
   <inceptionYear>2006</inceptionYear>\r
@@ -43,7 +43,7 @@
     <dependency>\r
       <groupId>asm</groupId>\r
       <artifactId>asm-all</artifactId>\r
-      <version>3.1</version>\r
+      <version>3.3</version>\r
       <scope>compile</scope>\r
     </dependency>\r
     <dependency>\r
     </dependency>\r
     <dependency>\r
       <groupId>jp.sourceforge.stigmata</groupId>\r
+      <artifactId>cflib</artifactId>\r
+      <version>1.0.0</version>\r
+      <scope>compile</scope>\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>jp.sourceforge.stigmata</groupId>\r
       <artifactId>digger</artifactId>\r
-      <version>1.1.0</version>\r
+      <version>3.0.0-SNAPSHOT</version>\r
       <scope>compile</scope>\r
     </dependency>\r
     <dependency>\r
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-compiler-plugin</artifactId>\r
+        <version>2.3.2</version>\r
         <configuration>\r
           <source>1.6</source>\r
           <target>1.6</target>\r
 \r
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
+        <artifactId>maven-resources-plugin</artifactId>\r
+        <version>2.4.3</version>\r
+        <configuration>\r
+          <encoding>utf-8</encoding>\r
+        </configuration>\r
+      </plugin>\r
+\r
+      <plugin>\r
+        <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-jar-plugin</artifactId>\r
+        <version>2.3.1</version>\r
         <configuration>\r
           <archive>\r
             <manifest>\r
       <plugin>\r
         <groupId>org.codehaus.mojo</groupId>\r
         <artifactId>native2ascii-maven-plugin</artifactId>\r
+        <version>1.0-alpha-1</version>\r
         <executions>\r
           <execution>\r
             <goals>\r
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-site-plugin</artifactId>\r
+        <version>3.0-beta-3</version>\r
         <configuration>\r
           <inputEncoding>euc-jp</inputEncoding>\r
           <outputEncoding>utf-8</outputEncoding>\r
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-project-info-reports-plugin</artifactId>\r
-      </plugin>\r
-      <plugin>\r
-        <groupId>org.apache.maven.plugins</groupId>\r
-        <artifactId>maven-javadoc-plugin</artifactId>\r
-        <configuration>\r
-          <locale>en</locale>\r
-        </configuration>\r
+        <version>2.3.1</version>\r
       </plugin>\r
       <plugin>\r
         <groupId>org.codehaus.mojo</groupId>\r
         <artifactId>cobertura-maven-plugin</artifactId>\r
+        <version>2.4</version>\r
+        <configuration>\r
+          <formats>\r
+            <format>xml</format>\r
+            <format>html</format>\r
+          </formats>\r
+          <encoding>utf-8</encoding>\r
+        </configuration>\r
       </plugin>\r
       <plugin>\r
+        <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-pmd-plugin</artifactId>\r
+        <version>2.5</version>\r
         <configuration>\r
-          <linkXref>true</linkXref>\r
           <sourceEncoding>utf-8</sourceEncoding>\r
+          <outputEncoding>utf-8</outputEncoding>\r
           <targetJdk>1.6</targetJdk>\r
         </configuration>\r
       </plugin>\r
       <plugin>\r
-        <groupId>org.apache.maven.plugins</groupId>\r
-        <artifactId>maven-jxr-plugin</artifactId>\r
+        <groupId>org.codehaus.mojo</groupId>\r
+        <artifactId>findbugs-maven-plugin</artifactId>\r
+        <version>2.3.2</version>\r
+        <configuration>\r
+          <sourceEncoding>utf-8</sourceEncoding>\r
+          <outputEncoding>utf-8</outputEncoding>\r
+        </configuration>\r
       </plugin>\r
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
-        <artifactId>maven-changes-plugin</artifactId>\r
-        <reportSets>\r
-          <reportSet>\r
-            <reports>\r
-              <report>changes-report</report>\r
-            </reports>\r
-          </reportSet>\r
-        </reportSets>\r
+        <artifactId>maven-surefire-report-plugin</artifactId>\r
+        <version>2.8</version>\r
       </plugin>\r
       <plugin>\r
-        <groupId>org.codehaus.mojo</groupId>\r
-        <artifactId>findbugs-maven-plugin</artifactId>\r
+        <groupId>org.apache.maven.plugins</groupId>\r
+        <artifactId>maven-jxr-plugin</artifactId>\r
+        <version>2.1</version>\r
         <configuration>\r
-          <xmlOutput>false</xmlOutput>\r
-          <threshold>Normal</threshold>\r
-          <effort>Default</effort>\r
+          <inputEncoding>utf-8</inputEncoding>\r
+          <outputEncoding>utf-8</outputEncoding>\r
+          <aggregate>true</aggregate>\r
         </configuration>\r
       </plugin>\r
-\r
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-javadoc-plugin</artifactId>\r
+        <version>2.7</version>\r
         <configuration>\r
-          <locale>en</locale>\r
+          <charset>utf-8</charset>\r
+          <encoding>utf-8</encoding>\r
+          <docencoding>utf-8</docencoding>\r
         </configuration>\r
       </plugin>\r
     </plugins>\r
diff --git a/src/docs/extends_stigmata.pptx b/src/docs/extends_stigmata.pptx
new file mode 100755 (executable)
index 0000000..cbfa85b
Binary files /dev/null and b/src/docs/extends_stigmata.pptx differ
index 354af64..7d8913c 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * Thrown an application fails to launch in initialization.
  * This error causes invalid deployment. 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ApplicationInitializationError extends Error{
     private static final long serialVersionUID = 32097456654328L;
index f572eb0..6aa0e21 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 
 /**
@@ -11,7 +7,6 @@ import java.util.Iterator;
  * The birthmark is native characteristics of a program.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface Birthmark extends Iterable<BirthmarkElement>{
     /**
index 8656aaa..fde6ee3 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * Interface for comparing given two birthmarks and calculate similarity.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface BirthmarkComparator {
     /**
index 7ae10e8..9494088 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * Thrown to indicate failed to compare two birthmarks. 
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkComparisonFailedException extends BirthmarkException{
     private static final long serialVersionUID = 3194872113405859851L;
index ffacb95..0e314ba 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -15,7 +11,6 @@ import java.util.Map;
  * Birthmark runtime context.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkContext{
     private BirthmarkEnvironment environment;
index f4ea9ab..de524d6 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.io.Serializable;
 
 /**
  * element of birthmark.
  * 
  * @author  Haruaki TAMADA
- * @version  $Revision$ 
  */
 public class BirthmarkElement implements Serializable{
     private static final long serialVersionUID = 943675475343245243L;
index ce77342..43826e0 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -11,7 +7,6 @@ import java.util.List;
  * Thrown if extracting birthmark is failed to find a class definition.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkElementClassNotFoundException extends
                BirthmarkExtractionFailedException {
index 5ee7305..2e01d89 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -18,7 +14,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.Stack;
 
-import jp.sourceforge.stigmata.birthmarks.extractors.BirthmarkExtractorFactory;
 import jp.sourceforge.stigmata.digger.ClassFileArchive;
 import jp.sourceforge.stigmata.digger.ClassFileEntry;
 import jp.sourceforge.stigmata.digger.ClasspathContext;
@@ -36,7 +31,7 @@ import jp.sourceforge.stigmata.hook.Phase;
 import jp.sourceforge.stigmata.hook.StigmataHookManager;
 import jp.sourceforge.stigmata.result.CertainPairComparisonResultSet;
 import jp.sourceforge.stigmata.result.RoundRobinComparisonResultSet;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * core engine for extracting/comparing/filtering birthmarks.
@@ -44,7 +39,6 @@ import jp.sourceforge.stigmata.spi.BirthmarkSpi;
  * This class is not thread safe.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkEngine{
     private BirthmarkEnvironment environment;
@@ -53,14 +47,12 @@ public class BirthmarkEngine{
     private WarningMessages warnings;
     private OperationType latestOperationType;
     private OperationType targetType;
-    private BirthmarkExtractorFactory factory;
 
     /**
      * constructor.
      */
     public BirthmarkEngine(BirthmarkEnvironment env){
         this.environment = env;
-        factory = new BirthmarkExtractorFactory(env);
     }
 
     /**
@@ -281,7 +273,7 @@ public class BirthmarkEngine{
         String[] target = set.toArray(new String[set.size()]);
         ClassFileArchive[] archives = createArchives(target, environment);
         for(String type: context.getBirthmarkTypes()){
-            BirthmarkSpi service = context.getEnvironment().getService(type);
+            BirthmarkService service = context.getEnvironment().getService(type);
             if(service != null && service.getPreprocessor() != null){
                 BirthmarkPreprocessor preprocessor = service.getPreprocessor();
                 preprocessor.preprocess(archives, context);
@@ -357,18 +349,15 @@ public class BirthmarkEngine{
 
                     byte[] data = inputStreamToByteArray(entry.getLocation().openStream());
                     for(String birthmarkType: context.getBirthmarkTypes()){
-                        try{
-                            BirthmarkExtractor extractor = factory.getExtractor(birthmarkType);
-                            if(extractor.isAcceptable(ExtractionUnit.PACKAGE)){
-                                Birthmark b = bs.getBirthmark(extractor.getProvider().getType());
-                                if(b == null){
-                                    b = extractor.createBirthmark();
-                                    bs.addBirthmark(b);
-                                }
-                                extractor.extract(b, new ByteArrayInputStream(data), er.getContext());
+                        BirthmarkService service = getEnvironment().getService(birthmarkType);
+                        BirthmarkExtractor extractor = service.getExtractor();
+                        if(extractor.isAcceptable(ExtractionUnit.PACKAGE)){
+                            Birthmark b = bs.getBirthmark(extractor.getProvider().getType());
+                            if(b == null){
+                                b = extractor.createBirthmark();
+                                bs.addBirthmark(b);
                             }
-                        } catch(ExtractorNotFoundException e){
-                            warnings.addMessage(e, birthmarkType);
+                            extractor.extract(b, new ByteArrayInputStream(data), er.getContext());
                         }
                     }
                 } catch(IOException e){
@@ -405,14 +394,11 @@ public class BirthmarkEngine{
                     byte[] data = inputStreamToByteArray(entry.getLocation().openStream());
 
                     for(String birthmarkType: context.getBirthmarkTypes()){
-                        try{
-                            BirthmarkExtractor extractor = factory.getExtractor(birthmarkType);
-                            if(extractor.isAcceptable(ExtractionUnit.CLASS)){
-                                Birthmark b = extractor.extract(new ByteArrayInputStream(data), er.getContext());
-                                birthmarkset.addBirthmark(b);
-                            }
-                        } catch(ExtractorNotFoundException e){
-                            warnings.addMessage(e, birthmarkType);
+                        BirthmarkService service = getEnvironment().getService(birthmarkType);
+                        BirthmarkExtractor extractor = service.getExtractor();
+                        if(extractor.isAcceptable(ExtractionUnit.CLASS)){
+                            Birthmark b = extractor.extract(new ByteArrayInputStream(data), er.getContext());
+                            birthmarkset.addBirthmark(b);
                         }
                     }
                     er.addBirthmarkSet(et, birthmarkset);
@@ -433,19 +419,16 @@ public class BirthmarkEngine{
                 try{
                     byte[] data = inputStreamToByteArray(entry.getLocation().openStream());
                     for(String birthmarkType: context.getBirthmarkTypes()){
-                        try{
-                            BirthmarkExtractor extractor = factory.getExtractor(birthmarkType);
-                            if(extractor.isAcceptable(ExtractionUnit.ARCHIVE)){
-                                Birthmark b = birthmarkset.getBirthmark(birthmarkType);
-                                if(b == null){
-                                    b = extractor.createBirthmark();
-                                    birthmarkset.addBirthmark(b);
-                                }
-                                extractor.extract(b, new ByteArrayInputStream(data), er.getContext());
+                        BirthmarkService service = getEnvironment().getService(birthmarkType);
+                        BirthmarkExtractor extractor = service.getExtractor();
+                        if(extractor.isAcceptable(ExtractionUnit.ARCHIVE)){
+                            Birthmark b = birthmarkset.getBirthmark(birthmarkType);
+                            if(b == null){
+                                b = extractor.createBirthmark();
+                                birthmarkset.addBirthmark(b);
                             }
-                        } catch(ExtractorNotFoundException e){
-                            warnings.addMessage(e, birthmarkType);
-                        } 
+                            extractor.extract(b, new ByteArrayInputStream(data), er.getContext());
+                        }
                     }
                 } catch(IOException e){
                     warnings.addMessage(e, entry.getClassName());
index c7b3496..7e9f484 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
@@ -16,20 +12,18 @@ import java.util.Map;
 import java.util.ServiceLoader;
 import java.util.Set;
 
-import javax.imageio.spi.ServiceRegistry;
-
 import jp.sourceforge.stigmata.digger.ClasspathContext;
 import jp.sourceforge.stigmata.filter.ComparisonPairFilterManager;
 import jp.sourceforge.stigmata.resolvers.StigmataHomeManager;
 import jp.sourceforge.stigmata.result.history.ExtractedBirthmarkServiceManager;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+import jp.sourceforge.stigmata.utils.NullIterator;
 import jp.sourceforge.stigmata.utils.WellknownClassManager;
 
 /**
  * This class represents the context for extracting/comparing birthmarks.
  * 
  * @author  Haruaki TAMADA
- * @version  $Revision$
  */
 public class BirthmarkEnvironment{
     /**
@@ -61,7 +55,7 @@ public class BirthmarkEnvironment{
     /**
      * collection of services.
      */
-    private Map<String, BirthmarkSpi> services = new HashMap<String, BirthmarkSpi>();
+    private Map<String, BirthmarkService> services = new HashMap<String, BirthmarkService>();
 
     /**
      * properties manager.
@@ -96,6 +90,8 @@ public class BirthmarkEnvironment{
         classpathContext = new ClasspathContext();
         filterManager = new ComparisonPairFilterManager(this);
         historyManager = new ExtractedBirthmarkServiceManager(this);
+
+        findDefaultServices();
     }
 
     /**
@@ -212,7 +208,7 @@ public class BirthmarkEnvironment{
     /**
      * add given birthmark service to this environment.
      */
-    public synchronized void addService(BirthmarkSpi service){
+    public synchronized void addService(BirthmarkService service){
         if(parent == null || parent.getService(service.getType()) == null){
             services.put(service.getType(), service);
         }
@@ -228,8 +224,8 @@ public class BirthmarkEnvironment{
     /**
      * return birthmark service registered with given birthmark type.
      */
-    public BirthmarkSpi getService(String type){
-        BirthmarkSpi service = services.get(type);
+    public BirthmarkService getService(String type){
+        BirthmarkService service = services.get(type);
         if(service == null && parent != null){
             service = parent.getService(type);
         }
@@ -239,22 +235,29 @@ public class BirthmarkEnvironment{
     /**
      * return all birthmark services searching traverse to root environment.
      */
-    public synchronized BirthmarkSpi[] getServices(){
-        List<BirthmarkSpi> list = getServiceList();
-        BirthmarkSpi[] services = list.toArray(new BirthmarkSpi[list.size()]);
+    public synchronized BirthmarkService[] getServices(){
+        List<BirthmarkService> list = getServiceList();
+        BirthmarkService[] services = list.toArray(new BirthmarkService[list.size()]);
         Arrays.sort(services, new BirthmarkSpiComparator());
 
         return services;
     }
 
     public <T> Iterator<T> lookupProviders(Class<T> providerClass){
-        Iterator<T> iterator;
+        ServiceLoader<T> services;
         if(loader != null){
-            ServiceLoader<T> services = ServiceLoader.load(providerClass, loader);
+            services = ServiceLoader.load(providerClass, loader);
+        }
+        else{
+            services = ServiceLoader.load(providerClass);
+        }
+
+        Iterator<T> iterator;
+        if(services != null){
             iterator = services.iterator();
         }
         else{
-            iterator = ServiceRegistry.lookupProviders(providerClass);
+            iterator = new NullIterator<T>();
         }
         return iterator;
     }
@@ -262,16 +265,16 @@ public class BirthmarkEnvironment{
     /**
      * return birthmark services lookup from current class path.
      */
-    public synchronized BirthmarkSpi[] findServices(){
-        List<BirthmarkSpi> list = getServiceList();
+    public synchronized BirthmarkService[] findServices(){
+        List<BirthmarkService> list = getServiceList();
 
-        for(Iterator<BirthmarkSpi> i = lookupProviders(BirthmarkSpi.class); i.hasNext(); ){
-            BirthmarkSpi spi = i.next();
+        for(Iterator<BirthmarkService> i = lookupProviders(BirthmarkService.class); i.hasNext(); ){
+            BirthmarkService spi = i.next();
             if(getService(spi.getType()) == null){
                 list.add(spi);
             }
         }
-        BirthmarkSpi[] services = list.toArray(new BirthmarkSpi[list.size()]);
+        BirthmarkService[] services = list.toArray(new BirthmarkService[list.size()]);
         Arrays.sort(services, new BirthmarkSpiComparator());
 
         return services;
@@ -299,10 +302,10 @@ public class BirthmarkEnvironment{
     /**
      * find the all birthmark services searching to root environment.
      */
-    private List<BirthmarkSpi> getServiceList(){
-        List<BirthmarkSpi> list = new ArrayList<BirthmarkSpi>();
+    private List<BirthmarkService> getServiceList(){
+        List<BirthmarkService> list = new ArrayList<BirthmarkService>();
         if(parent != null){
-            for(BirthmarkSpi spi: parent.getServices()){
+            for(BirthmarkService spi: parent.getServices()){
                 list.add(spi);
             }
         }
@@ -311,4 +314,10 @@ public class BirthmarkEnvironment{
         }
         return list;
     }
+
+    private void findDefaultServices(){
+        for(BirthmarkService service: ServiceLoader.load(BirthmarkService.class)){
+            addService(service);
+        }
+    }
 }
index 60e58cc..42d8597 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * This exception represents occuring some exceptions caused birthmarking.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkException extends Exception{
     private static final long serialVersionUID = -6422474631148213820L;
index 273790d..5f34e89 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkExtractionFailedException extends BirthmarkException {
        private static final long serialVersionUID = 21932436457235L;
index 27d032a..75e05a1 100644 (file)
@@ -1,24 +1,19 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.io.InputStream;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * extract birthmarks from given Java bytecode stream.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface BirthmarkExtractor{
     /**
      * returns service provider interface of this extractor.
      */
-    public BirthmarkSpi getProvider();
+    public BirthmarkService getProvider();
 
     /**
      * create new birthmark.
@@ -36,6 +31,16 @@ public interface BirthmarkExtractor{
     public ExtractionUnit[] getAcceptableUnits();
 
     /**
+     * build birthmark element from given string.
+     */
+    public BirthmarkElement buildElement(String value);
+
+    /**
+     * extract birthmark from given stream with default environment.
+     */
+    public Birthmark extract(InputStream in) throws BirthmarkExtractionFailedException;
+
+    /**
      * extract birthmark from given stream with given environment.
      */
     public Birthmark extract(InputStream in, BirthmarkContext context) throws BirthmarkExtractionFailedException;
index 6150022..8b7d331 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.digger.ClassFileArchive;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public interface BirthmarkPreprocessor{
     public void preprocess(ClassFileArchive[] targets, BirthmarkContext context);
index b2ddf07..b036094 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -13,7 +9,6 @@ import java.util.Map;
  * This class manages a set of birthmarks which extracted from a target.
  *
  * @author  Haruaki TAMADA
- * @version  $Revision$ 
  */
 public class BirthmarkSet implements Iterable<Birthmark>{
     /**
index 07a0e10..8898218 100644 (file)
@@ -1,18 +1,13 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.Comparator;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-class BirthmarkSpiComparator implements Comparator<BirthmarkSpi>{
+class BirthmarkSpiComparator implements Comparator<BirthmarkService>{
     /**
      * default constructor
      */
@@ -25,7 +20,7 @@ class BirthmarkSpiComparator implements Comparator<BirthmarkSpi>{
     }
 
     @Override
-    public int compare(BirthmarkSpi s1, BirthmarkSpi s2){
+    public int compare(BirthmarkService s1, BirthmarkService s2){
         if(s1.isExperimental() && !s2.isExperimental()){
             return 1;
         }
index 1378b5e..f4d240f 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * This exception class will be thrown when birthmark storing is failed.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkStoreException extends BirthmarkException{
     private static final long serialVersionUID = -7106053809841281816L;
index b93e179..f8051d8 100644 (file)
@@ -4,16 +4,11 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
-/*
- * $Id$
- */
-
 /**
  * This class represents how to store extracted birthmarks.
  * memory?, databases?, or files?
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkStoreTarget implements Serializable, Comparable<BirthmarkStoreTarget>{
     private static final long serialVersionUID = -4225861589804166362L;
index 2dbc309..58f97cd 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * This exception class be thrown when birthmark types are different in some
  * operation such as merging, and comparing.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkTypeMismatchException extends BirthmarkException{
     private static final long serialVersionUID = -6198325117696243731L;
index ed2cb5e..0f39328 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * This enum represents birthmark comparison method. let <it>X</it> be a set of
  * target <it>{ x1, x2, ..., xn, }</it> and <it>Y</it> be a set of target
  * <it>{ y1, y2, ..., ym, }</it>.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public enum ComparisonMethod{
     /**
index b4122dc..329fabb 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -12,7 +8,6 @@ import java.util.List;
  * This class represents comparison pair.
  * 
  * @author  Haruaki TAMADA
- * @version  $Revision$ 
  */
 public class ComparisonPair implements Iterable<ComparisonPairElement>{
     private BirthmarkSet target1;
index 0b67bd9..1d6f443 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * This class represents comparing two birthmarks.
  * @author  Haruaki TAMADA
- * @version  $Revision$ 
  */
 public class ComparisonPairElement{
     private Birthmark birthmark1;
index f0d14a3..2359d97 100644 (file)
@@ -1,11 +1,7 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.filter.Criterion;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * Filtering results by some criteria.
@@ -16,7 +12,6 @@ import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
  * </ul>
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface ComparisonPairFilter{
     public boolean isFiltered(ComparisonPair pair);
@@ -29,5 +24,5 @@ public interface ComparisonPairFilter{
 
     public Criterion getCriterion();
 
-    public ComparisonPairFilterSpi getService();
+    public ComparisonPairFilterService getService();
 }
index 11d22aa..fc19203 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -13,7 +9,6 @@ import java.util.List;
  * Set of {@link ComparisonPairFilter <Ccode>ComparisonPairFilter</code>}.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ComparisonPairFilterSet implements Iterable<ComparisonPairFilter>{
     private List<ComparisonPairFilter> filters = new ArrayList<ComparisonPairFilter>();
index 836a10f..e4d1b7a 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 
 /**
  * result set of birthmark comparison.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface ComparisonResultSet extends Iterable<ComparisonPair>{
     /**
index 5cc20ca..3d81f8f 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 
 /**
  * This interface represents a set of extracted birthmarks.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface ExtractionResultSet extends Iterable<BirthmarkSet>{
     public BirthmarkStoreTarget getStoreTarget();
index e660287..b463f1c 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * This enum represents the mean of extracted birthmarks.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public enum ExtractionTarget{
     TARGET_X,
index 9be9f10..57b1a15 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * This enum type represents birthmark extraction unit.
  * 
@@ -12,7 +8,6 @@ package jp.sourceforge.stigmata;
  * class name, method name, package name, or product name.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public enum ExtractionUnit{
     CLASS,
index 9ce3aa1..1e9e9df 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  *
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class ExtractorNotFoundException extends BirthmarkException{
     private static final long serialVersionUID = 2050231007494812969L;
index 95bd761..3537117 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class FilterNotFoundException extends BirthmarkException{
     private static final long serialVersionUID = -3981002035876805953L;
index 85a8ba9..0dec350 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -16,7 +12,7 @@ import jp.sourceforge.stigmata.command.StigmataCommandFactory;
 import jp.sourceforge.stigmata.digger.ClasspathContext;
 import jp.sourceforge.stigmata.hook.Phase;
 import jp.sourceforge.stigmata.hook.StigmataHookManager;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 import jp.sourceforge.talisman.xmlcli.CommandLinePlus;
 import jp.sourceforge.talisman.xmlcli.OptionsBuilder;
 import jp.sourceforge.talisman.xmlcli.XmlCliConfigurationException;
@@ -32,7 +28,6 @@ import org.w3c.dom.DOMException;
  * Front end class.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public final class Main{
     /**
@@ -126,7 +121,7 @@ public final class Main{
         String[] birthmarks = cl.getOptionValues("birthmark");
         if(birthmarks == null || birthmarks.length == 0){
             List<String> birthmarkList = new ArrayList<String>();
-            for(BirthmarkSpi service: env.getServices()){
+            for(BirthmarkService service: env.getServices()){
                 if(!service.isExperimental()){
                     birthmarkList.add(service.getType());
                 }
index 3694114..e2447ff 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -20,7 +16,7 @@ import java.util.List;
 
 import jp.sourceforge.stigmata.event.BirthmarkEngineListener;
 import jp.sourceforge.stigmata.printer.PrinterManager;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 import jp.sourceforge.stigmata.ui.swing.ExtensionFilter;
 import jp.sourceforge.stigmata.utils.ConfigFileExporter;
 import jp.sourceforge.stigmata.utils.ConfigFileImporter;
@@ -28,7 +24,6 @@ import jp.sourceforge.stigmata.utils.ConfigFileImporter;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class Stigmata{
     /**
@@ -158,8 +153,8 @@ public class Stigmata{
         } catch(IOException e){
             throw new ApplicationInitializationError(e);
         }
-        for(Iterator<BirthmarkSpi> i = defaultEnvironment.lookupProviders(BirthmarkSpi.class); i.hasNext(); ){
-            BirthmarkSpi service = i.next();
+        for(Iterator<BirthmarkService> i = defaultEnvironment.lookupProviders(BirthmarkService.class); i.hasNext(); ){
+            BirthmarkService service = i.next();
             defaultEnvironment.addService(service);
         }
         PrinterManager.refresh(defaultEnvironment);
index ac828ad..fe808ec 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 /**
  *
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public interface StigmataCommand{
     public boolean isAvailableArguments(String[] args);
index 7c0f29a..96e2207 100644 (file)
@@ -1,16 +1,12 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.InputStream;
 
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkExtractionFailedException;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassWriter;
@@ -19,10 +15,9 @@ import org.objectweb.asm.ClassWriter;
  * Abstract birthmark extractor using ASM.
  *
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public abstract class ASMBirthmarkExtractor extends AbstractBirthmarkExtractor{
-    public ASMBirthmarkExtractor(BirthmarkSpi spi){
+    public ASMBirthmarkExtractor(BirthmarkService spi){
         super(spi);
     }
 
index 0af6cd3..768a337 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -16,7 +12,6 @@ import jp.sourceforge.stigmata.BirthmarkElement;
  * Abstract class for concrete {@link Birthmark <code>Birthmark</code>}
  *
  * @author  Haruaki TAMADA
- * @version  $Revision$ 
  */
 public abstract class AbstractBirthmark implements Birthmark, Serializable{
        private static final long serialVersionUID = -1300436185045832554L;
index fcb56b0..76b9a64 100644 (file)
@@ -1,29 +1,25 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
+import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.BirthmarkExtractionFailedException;
 import jp.sourceforge.stigmata.BirthmarkExtractor;
 import jp.sourceforge.stigmata.ExtractionUnit;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * Abstract class for extracting birthmark.
  * @author  Haruaki TAMADA
- * @version  $Revision$ 
  */
 public abstract class AbstractBirthmarkExtractor implements BirthmarkExtractor{
     /**
      * provider.
      */
-    private BirthmarkSpi spi;
+    private BirthmarkService spi;
 
     /**
      * default constructor.
@@ -36,7 +32,7 @@ public abstract class AbstractBirthmarkExtractor implements BirthmarkExtractor{
      * constructor.
      * @param spi service provider.
      */
-    public AbstractBirthmarkExtractor(BirthmarkSpi spi){
+    public AbstractBirthmarkExtractor(BirthmarkService spi){
         this.spi = spi;
     }
 
@@ -44,10 +40,14 @@ public abstract class AbstractBirthmarkExtractor implements BirthmarkExtractor{
      * returns the provider of this extractor.
      */
     @Override
-    public BirthmarkSpi getProvider(){
+    public BirthmarkService getProvider(){
         return spi;
     }
 
+    public final Birthmark extract(InputStream in) throws BirthmarkExtractionFailedException{
+        return extract(createBirthmark(), in, new BirthmarkContext(BirthmarkEnvironment.getDefaultEnvironment()));
+    }
+
     /**
      * extract birthmark given stream with given environment.
      */
index 7e9ab77..b679abb 100644 (file)
@@ -3,10 +3,10 @@ package jp.sourceforge.stigmata.birthmarks;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkPreprocessor;
 import jp.sourceforge.stigmata.digger.ClassFileArchive;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 public abstract class AbstractBirthmarkPreprocessor implements BirthmarkPreprocessor{
-    private BirthmarkSpi service;
+    private BirthmarkService service;
 
     /**
      * default constructor.
@@ -15,11 +15,11 @@ public abstract class AbstractBirthmarkPreprocessor implements BirthmarkPreproce
     public AbstractBirthmarkPreprocessor(){
     }
 
-    public AbstractBirthmarkPreprocessor(BirthmarkSpi service){
+    public AbstractBirthmarkPreprocessor(BirthmarkService service){
         this.service = service;
     }
 
-    public BirthmarkSpi getProvider(){
+    public BirthmarkService getProvider(){
         return service;
     }
 
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/AbstractBirthmarkService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/AbstractBirthmarkService.java
deleted file mode 100644 (file)
index ed33a1c..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks;
-
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
-import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.BirthmarkPreprocessor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
-
-/**
- * Abstract class for {@link BirthmarkSpi <code>BirthmarkSpi</code>}
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public abstract class AbstractBirthmarkService implements BirthmarkSpi{
-    @Override
-    public String getDisplayType(){
-        return getDisplayType(Locale.getDefault());
-    }
-
-    @Override
-    public String getDisplayType(Locale locale){
-        LocalizedDescriptionManager manager = LocalizedDescriptionManager.getInstance();
-        String type = manager.getDisplayType(locale, getType());
-        if(type == null){
-            type = getType();
-        }
-        return type;
-    }
-
-    @Override
-    public String getDescription(){
-        return getDescription(Locale.getDefault());
-    }
-
-    @Override
-    public String getDescription(Locale locale){
-        LocalizedDescriptionManager manager = LocalizedDescriptionManager.getInstance();
-        String description = manager.getDescription(locale, getType());
-        if(description == null){
-            description = getDefaultDescription();
-        }
-        return description;
-    }
-
-    @Override
-    public abstract BirthmarkComparator getComparator();
-
-    @Override
-    public String getComparatorClassName(){
-        return getComparator().getClass().getName();
-    }
-
-    @Override
-    public abstract BirthmarkExtractor getExtractor();
-
-    @Override
-    public String getExtractorClassName(){
-        return getExtractor().getClass().getName();
-    }
-
-    @Override
-    public BirthmarkPreprocessor getPreprocessor(){
-        return null;
-    }
-
-    @Override
-    public String getPreprocessorClassName(){
-        BirthmarkPreprocessor preprocessor = getPreprocessor();
-        String name = null;
-        if(preprocessor != null){
-            name = preprocessor.getClass().getName();
-        }
-        return name;
-    }
-
-    @Override
-    public abstract String getType();
-
-    @Override
-    public abstract String getDefaultDescription();
-
-    @Override
-    public boolean isExperimental(){
-        return true;
-    }
-
-    @Override
-    public boolean isUserDefined(){
-        return true;
-    }
-
-    @Override
-    public String getVersion(){
-        return getClass().getPackage().getImplementationVersion();
-    }
-
-    @Override
-    public String getVendorName(){
-        return getClass().getPackage().getImplementationVendor();
-    }
-
-    @Override
-    public Birthmark buildBirthmark(){
-       return getExtractor().createBirthmark();
-    }
-
-    @Override
-    public BirthmarkElement buildBirthmarkElement(String value){
-       if(value == null || value.equals("<null>")){
-               return NullBirthmarkElement.getInstance();
-       }
-               return new BirthmarkElement(value);
-    }
-}
index b689451..96f1081 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -19,7 +15,6 @@ import org.objectweb.asm.ClassVisitor;
  * Abstract visitor class of extracting birthmarks from class file.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class BirthmarkExtractVisitor extends ClassAdapter{
     private Birthmark birthmark;
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/BirthmarkService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/BirthmarkService.java
deleted file mode 100644 (file)
index cabbbb3..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks;
-
-/*
- * $Id$
- */
-
-import java.lang.reflect.Constructor;
-
-import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkEnvironment;
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * Service provider interface for birthmarks which are defined in
- * configuration files.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class BirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
-    private Class<? extends BirthmarkExtractor> extractorClass;
-    private Class<? extends BirthmarkComparator> comparatorClass;
-    private String type;
-    private String displayType;
-    private String description;
-    private BirthmarkExtractor extractorObject;
-    private BirthmarkComparator comparatorObject;
-    private boolean userDefined = true;
-    private BirthmarkEnvironment environment;
-
-    public BirthmarkService(BirthmarkEnvironment environment){
-        this.environment = environment;
-    }
-
-    public BirthmarkService(){
-    }
-
-    public void setBirthmarkEnvironment(BirthmarkEnvironment environment){
-        this.environment = environment;
-    }
-
-    public void setExtractorClassName(String extractor){
-        try{
-            Class<?> c;
-            if(environment == null){
-                c = Class.forName(extractor);
-            }
-            else{
-                c = environment.getClasspathContext().findClass(extractor);
-            }
-            extractorClass = c.asSubclass(BirthmarkExtractor.class);
-            extractorObject = null;
-        } catch(ClassNotFoundException e){
-            e.printStackTrace();
-        }
-    }
-
-    public void setComparatorClassName(String comparator){
-        try{
-            Class<?> c;
-            if(environment == null){
-                c = Class.forName(comparator);
-            }
-            else{
-                c = environment.getClasspathContext().findClass(comparator);
-            }
-            comparatorClass = c.asSubclass(BirthmarkComparator.class);
-            comparatorObject = null;
-        } catch(ClassNotFoundException e){
-            e.printStackTrace();
-        }
-    }
-
-    public void setType(String type){
-        this.type = type;
-    }
-
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public String getType(){
-        return type;
-    }
-
-    public void setDisplayType(String displayType){
-        this.displayType = displayType;
-    }
-
-    @Override
-    public String getDisplayType(){
-        return displayType;
-    }
-
-    public void setDescription(String description){
-        this.description = description;
-    }
-
-    @Override
-    public String getDescription(){
-        String desc = description;
-        if(description == null){
-            desc = "";
-        }
-        return desc;
-    }
-
-    /**
-     * returns a description of the birthmark this service provides.
-     */
-    @Override
-    public String getDefaultDescription(){
-        return description;
-    }
-
-    @Override
-    public String getExtractorClassName(){
-        return extractorClass.getName();
-    }
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(){
-        if(extractorObject == null){
-            try{
-                Constructor<? extends BirthmarkExtractor> c = extractorClass.getConstructor(BirthmarkSpi.class);
-                extractorObject = c.newInstance(this);
-            } catch(Exception e){
-                e.printStackTrace();
-            }
-        }
-        return extractorObject;
-    }
-
-    @Override
-    public String getComparatorClassName(){
-        return comparatorClass.getName();
-    }
-
-    /**
-     * returns a comparator for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkComparator getComparator(){
-        if(comparatorObject == null){
-            try{
-                Constructor<? extends BirthmarkComparator> c = comparatorClass.getConstructor(BirthmarkSpi.class);
-                comparatorObject = c.newInstance(this);
-            } catch(Exception e){
-                e.printStackTrace();
-            }
-        }
-        return comparatorObject;
-    }
-
-    @Override
-    public boolean isUserDefined(){
-        return userDefined;
-    }
-
-    public void setUserDefined(boolean userDefined){
-        this.userDefined = userDefined;
-    }
-}
-
index 84001d9..0d80fad 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -16,7 +12,6 @@ import jp.sourceforge.stigmata.utils.ArrayIterator;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class FrequencyBirthmark extends AbstractBirthmark{
     private static final long serialVersionUID = 1905526895627693908L;
index 5178182..fe4209b 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkElement;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class FrequencyBirthmarkElement extends BirthmarkElement implements ValueCountable{
     private static final long serialVersionUID = 4454345943098520436L;
index fb74331..15a00e7 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkElement;
 
 /**
  * Null birthmark element.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class NullBirthmarkElement extends BirthmarkElement{
     private static final long serialVersionUID = -92345638932523L;
index 338bd65..5861502 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkElement;
 
 /**
  * Implementation of plain birthmark.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class PlainBirthmark extends AbstractBirthmark{
     private static final long serialVersionUID = 2370435723234463456L;
index f750389..e7efa69 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 /**
  * This interface represents that the implemented class have name and its count.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface ValueCountable{
     public int getValueCount();
index d2b2ac8..0883746 100644 (file)
@@ -1,32 +1,27 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkComparator;
 import jp.sourceforge.stigmata.BirthmarkContext;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * abstract birthmark comparator.
  *
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public abstract class AbstractBirthmarkComparator implements BirthmarkComparator{
-    private BirthmarkSpi spi;
+    private BirthmarkService spi;
 
     @Deprecated
     public AbstractBirthmarkComparator(){
     }
 
-    public AbstractBirthmarkComparator(BirthmarkSpi spi){
+    public AbstractBirthmarkComparator(BirthmarkService spi){
         this.spi = spi;
     }
 
-    public BirthmarkSpi getProvider(){
+    public BirthmarkService getProvider(){
         return spi;
     }
 
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/AbstractBirthmarkComparatorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/comparators/AbstractBirthmarkComparatorService.java
deleted file mode 100644 (file)
index c26d7b1..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.comparators;
-
-/*
- * $Id$
- */
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Locale;
-
-import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.spi.AbstractServiceProvider;
-import jp.sourceforge.stigmata.spi.BirthmarkComparatorSpi;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
-
-/**
- * Abstract service provider interface for comparing birthmarks.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-abstract class AbstractBirthmarkComparatorService extends AbstractServiceProvider implements BirthmarkComparatorSpi{
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public abstract String getType();
-
-    /**
-     * returns a localized description of the birthmark this service provides.
-     */
-    @Override
-    public String getDescription(Locale locale){
-        return LocalizedDescriptionManager.getInstance().getDescription(
-            locale, getType(), LocalizedDescriptionManager.ServiceCategory.comparator
-        );
-    }
-
-    /**
-     * returns a localized description of the birthmark in default locale.
-     */
-    @Override
-    public String getDescription(){
-        return getDescription(Locale.getDefault());
-    }
-
-    @Override
-    public abstract String getComparatorClassName();
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkComparator getComparator(BirthmarkSpi service){
-        try{
-            Class<?> c = Class.forName(getComparatorClassName());
-            Class<? extends BirthmarkComparator> clazz = c.asSubclass(BirthmarkComparator.class);
-            Constructor<? extends BirthmarkComparator> constructor = clazz.getConstructor(BirthmarkSpi.class);
-            return constructor.newInstance(service);
-        } catch(NoSuchMethodException e){
-        } catch(InstantiationException e){
-        } catch(InvocationTargetException e){
-        } catch(ClassNotFoundException e){
-        } catch(IllegalAccessException e){
-        }
-        return null;
-    }
-}
-
index ecaadc8..3655778 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import java.util.HashMap;
 import java.util.Map;
 
@@ -11,7 +7,7 @@ import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.birthmarks.ValueCountable;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * Comparing birthmarks by cosine similarity algorithm. This class compares
@@ -19,12 +15,11 @@ import jp.sourceforge.stigmata.spi.BirthmarkSpi;
  * {@link ValueCountable <code>ValueCountable</code>} interface.
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class CosineSimilarityBirthmarkComparator extends
         AbstractBirthmarkComparator{
 
-    public CosineSimilarityBirthmarkComparator(BirthmarkSpi spi){
+    public CosineSimilarityBirthmarkComparator(BirthmarkService spi){
         super(spi);
     }
 
index 6516008..9829c1f 100644 (file)
@@ -1,20 +1,16 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkComparatorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * SPI of {@link BirthmarkComparator <code>BirthmarkComparator</code>}.
  * Comparing birthmarks by cosine similarity algorithm.
  *
  * @author Haruaki TAMADA
- * @version $Revision$
  */
-public class CosineSimilarityBirthmarkComparatorService extends AbstractBirthmarkComparatorService{
+public class CosineSimilarityBirthmarkComparatorService implements BirthmarkComparatorService{
     /**
      * returns a type of the birthmark this service provides.
      */
@@ -23,17 +19,17 @@ public class CosineSimilarityBirthmarkComparatorService extends AbstractBirthmar
         return "cosine";
     }
 
-    @Override
-    public String getComparatorClassName(){
-        return CosineSimilarityBirthmarkComparator.class.getName();
-    }
-
     /**
      * returns a extractor for the birthmark of this service.
      */
     @Override
-    public BirthmarkComparator getComparator(BirthmarkSpi service){
+    public BirthmarkComparator getComparator(BirthmarkService service){
         return new CosineSimilarityBirthmarkComparator(service);
     }
+
+    @Override
+    public String getDescription(){
+        return "Cosine Similarity";
+    }
 }
 
index cf9eb2a..25d0efe 100644 (file)
@@ -1,25 +1,20 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * calculate similarities between two birthmarks by DP matching algorithm.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class DPMatchingBirthmarkComparator extends AbstractBirthmarkComparator{
     private int mismatchPenalty = 5;
     private int shiftPenalty = 1;
 
-    public DPMatchingBirthmarkComparator(BirthmarkSpi spi){
+    public DPMatchingBirthmarkComparator(BirthmarkService spi){
         super(spi);
     }
 
index 46cce1a..b14b0c6 100644 (file)
@@ -1,20 +1,16 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkComparatorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * SPI of {@link BirthmarkComparator <code>BirthmarkComparator</code>}.
  * Comparing birthmarks by DP matching algorithm.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class DPMatchingBirthmarkComparatorService extends AbstractBirthmarkComparatorService{
+public class DPMatchingBirthmarkComparatorService implements BirthmarkComparatorService{
     /**
      * returns a type of the birthmark this service provides.
      */
@@ -23,17 +19,17 @@ public class DPMatchingBirthmarkComparatorService extends AbstractBirthmarkCompa
         return "dpmatching";
     }
 
-    @Override
-    public String getComparatorClassName(){
-        return DPMatchingBirthmarkComparator.class.getName();
-    }
-
     /**
      * returns a extractor for the birthmark of this service.
      */
     @Override
-    public BirthmarkComparator getComparator(BirthmarkSpi service){
+    public BirthmarkComparator getComparator(BirthmarkService service){
         return new DPMatchingBirthmarkComparator(service);
     }
+
+    @Override
+    public String getDescription(){
+        return "DP Matching";
+    }
 }
 
index dd887b7..2af88e6 100644 (file)
@@ -1,23 +1,18 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * calculate similarities between two birthmarks by edit distance
  * algorithm (levenshtein distance).
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class EditDistanceBirthmarkComparator extends AbstractBirthmarkComparator{
-    public EditDistanceBirthmarkComparator(BirthmarkSpi spi){
+    public EditDistanceBirthmarkComparator(BirthmarkService spi){
         super(spi);
     }
 
index e400468..020312b 100644 (file)
@@ -1,20 +1,16 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkComparatorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * SPI of {@link BirthmarkComparator <code>BirthmarkComparator</code>}.
  * Comparing birthmarks by edit distance algorithm.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class EditDistanceBirthmarkComparatorService extends AbstractBirthmarkComparatorService{
+public class EditDistanceBirthmarkComparatorService implements BirthmarkComparatorService{
     /**
      * returns a type of the birthmark this service provides.
      */
@@ -23,17 +19,17 @@ public class EditDistanceBirthmarkComparatorService extends AbstractBirthmarkCom
         return "editdistancee";
     }
 
-    @Override
-    public String getComparatorClassName(){
-        return EditDistanceBirthmarkComparator.class.getName();
-    }
-
     /**
      * returns a extractor for the birthmark of this service.
      */
     @Override
-    public BirthmarkComparator getComparator(BirthmarkSpi service){
+    public BirthmarkComparator getComparator(BirthmarkService service){
         return new EditDistanceBirthmarkComparator(service);
     }
+
+    @Override
+    public String getDescription(){
+        return "Edit Distance";
+    }
 }
 
index 66ccaa1..17ac97a 100644 (file)
@@ -1,22 +1,17 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * calculate similarities between two birthmarks by edit distance
  * algorithm (levenshtein distance).
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ExtendedEditDistanceBirthmarkComparator extends EditDistanceBirthmarkComparator{
-    public ExtendedEditDistanceBirthmarkComparator(BirthmarkSpi spi){
+    public ExtendedEditDistanceBirthmarkComparator(BirthmarkService spi){
         super(spi);
     }
 
index 4ae7847..99f8e04 100644 (file)
@@ -1,20 +1,16 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkComparatorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * SPI of {@link BirthmarkComparator <code>BirthmarkComparator</code>}.
  * Comparing birthmarks by extended edit distance algorithm.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class ExtendedEditDistanceBirthmarkComparatorService extends AbstractBirthmarkComparatorService{
+public class ExtendedEditDistanceBirthmarkComparatorService implements BirthmarkComparatorService{
     /**
      * returns a type of the birthmark this service provides.
      */
@@ -23,17 +19,17 @@ public class ExtendedEditDistanceBirthmarkComparatorService extends AbstractBirt
         return "editdistanceext";
     }
 
-    @Override
-    public String getComparatorClassName(){
-        return ExtendedEditDistanceBirthmarkComparator.class.getName();
-    }
-
     /**
      * returns a extractor for the birthmark of this service.
      */
     @Override
-    public BirthmarkComparator getComparator(BirthmarkSpi service){
+    public BirthmarkComparator getComparator(BirthmarkService service){
         return new ExtendedEditDistanceBirthmarkComparator(service);
     }
+
+    @Override
+    public String getDescription(){
+        return "Extended Edit Distance";
+    }
 }
 
index 96d8b54..48152cf 100644 (file)
@@ -1,16 +1,12 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import java.util.HashSet;
 import java.util.Set;
 
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * this comparator calculate following formula.
@@ -18,10 +14,9 @@ import jp.sourceforge.stigmata.spi.BirthmarkSpi;
  * similarity of those birthmarks are defined by |f(p) and f(q)|/|f(p) or f(q)|.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class LogicalAndBirthmarkComparator extends AbstractBirthmarkComparator{
-    public LogicalAndBirthmarkComparator(BirthmarkSpi spi){
+    public LogicalAndBirthmarkComparator(BirthmarkService spi){
         super(spi);
     }
 
index 6947c2e..17e9d71 100644 (file)
@@ -1,20 +1,16 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkComparatorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * SPI of {@link BirthmarkComparator <code>BirthmarkComparator</code>}.
  * Comparing birthmarks by logical AND algorithm.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class LogicalAndBirthmarkComparatorService extends AbstractBirthmarkComparatorService{
+public class LogicalAndBirthmarkComparatorService implements BirthmarkComparatorService{
     /**
      * returns a type of the birthmark this service provides.
      */
@@ -23,17 +19,17 @@ public class LogicalAndBirthmarkComparatorService extends AbstractBirthmarkCompa
         return "and";
     }
 
-    @Override
-    public String getComparatorClassName(){
-        return LogicalAndBirthmarkComparator.class.getName();
-    }
-
     /**
      * returns a extractor for the birthmark of this service.
      */
     @Override
-    public BirthmarkComparator getComparator(BirthmarkSpi service){
+    public BirthmarkComparator getComparator(BirthmarkService service){
         return new LogicalAndBirthmarkComparator(service);
     }
+
+    @Override
+    public String getDescription(){
+        return "Logical And Comparator";
+    }
 }
 
index 814d705..02eb430 100644 (file)
@@ -1,14 +1,10 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkComparator;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * An implementation of {@link BirthmarkComparator
@@ -19,10 +15,9 @@ import jp.sourceforge.stigmata.spi.BirthmarkSpi;
  * this class is defined as <i>|f(p) and f(q)|/(|f(p)| + |f(q)|)</i>.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class PlainBirthmarkComparator extends AbstractBirthmarkComparator{
-    public PlainBirthmarkComparator(BirthmarkSpi spi){
+    public PlainBirthmarkComparator(BirthmarkService spi){
         super(spi);
     }
 
index 3086b55..67efdf4 100644 (file)
@@ -1,20 +1,16 @@
 package jp.sourceforge.stigmata.birthmarks.comparators;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkComparatorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * SPI of {@link BirthmarkComparator <code>BirthmarkComparator</code>}.
  * Comparing birthmarks by default matching algorithm.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class PlainBirthmarkComparatorService extends AbstractBirthmarkComparatorService{
+public class PlainBirthmarkComparatorService implements BirthmarkComparatorService{
     /**
      * returns a type of the birthmark this service provides.
      */
@@ -23,17 +19,17 @@ public class PlainBirthmarkComparatorService extends AbstractBirthmarkComparator
         return "plain";
     }
 
-    @Override
-    public String getComparatorClassName(){
-        return PlainBirthmarkComparator.class.getName();
-    }
-
     /**
      * returns a extractor for the birthmark of this service.
      */
     @Override
-    public BirthmarkComparator getComparator(BirthmarkSpi service){
+    public BirthmarkComparator getComparator(BirthmarkService service){
         return new PlainBirthmarkComparator(service);
     }
+
+    @Override
+    public String getDescription(){
+        return "Plain Comparator";
+    }
 }
 
index 664bb29..b7b6155 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks.cvfv;
 
-/*
- * $Id$
- */
-
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -23,7 +19,6 @@ import org.objectweb.asm.Type;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ConstantValueOfFieldVariableBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
     private Map<String, TypeAndValueBirthmarkElement> elements = new LinkedHashMap<String, TypeAndValueBirthmarkElement>();
index ffe5cdd..f48cd40 100644 (file)
@@ -1,25 +1,21 @@
 package jp.sourceforge.stigmata.birthmarks.cvfv;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
+import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.ExtractionUnit;
 import jp.sourceforge.stigmata.birthmarks.ASMBirthmarkExtractor;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.objectweb.asm.ClassWriter;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ConstantValueOfFieldVariableBirthmarkExtractor extends ASMBirthmarkExtractor{
-    public ConstantValueOfFieldVariableBirthmarkExtractor(BirthmarkSpi spi){
+    public ConstantValueOfFieldVariableBirthmarkExtractor(BirthmarkService spi){
         super(spi);
     }
 
@@ -38,4 +34,32 @@ public class ConstantValueOfFieldVariableBirthmarkExtractor extends ASMBirthmark
             ExtractionUnit.CLASS, ExtractionUnit.PACKAGE, ExtractionUnit.ARCHIVE, 
         };
     }
+
+    @Override
+    public BirthmarkElement buildElement(String value) {
+       String signature = value.substring(0, value.indexOf('='));
+       String subValue = value.substring(value.indexOf('=') + 1);
+       Object elementValue = subValue;
+    
+        if(subValue.equals("null")){
+            elementValue = null;
+        }
+        else{
+            switch(signature.charAt(0)){
+            case 'Z':{
+                if(value.equals("true")) elementValue = Boolean.TRUE;
+                else                     elementValue = Boolean.FALSE;
+                break;
+            }
+            case 'C': elementValue = new Character(subValue.charAt(0)); break;
+            case 'D': elementValue = new Double(subValue);  break;
+            case 'F': elementValue = new Float(subValue);   break;
+            case 'S': elementValue = new Short(subValue);   break;
+            case 'B': elementValue = new Byte(subValue);    break;
+            case 'I': elementValue = new Integer(subValue); break;
+            default:  elementValue = value; break;
+            }
+       }
+       return new TypeAndValueBirthmarkElement(signature, elementValue);
+    }
 }
@@ -1,20 +1,15 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
+package jp.sourceforge.stigmata.birthmarks.cvfv;
 
 import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.cvfv.ConstantValueOfFieldVariableBirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkExtractorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * Birthmark Service Provider Interface.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class ConstantValueOfFieldVariableBirthmarkExtractorService extends AbstractBirthmarkExtractorService{
+public class ConstantValueOfFieldVariableBirthmarkExtractorService implements BirthmarkExtractorService{
 
     /**
      * returns a type of the birthmark this service provides.
@@ -24,16 +19,16 @@ public class ConstantValueOfFieldVariableBirthmarkExtractorService extends Abstr
         return "cvfv";
     }
 
-    @Override
-    public String getExtractorClassName(){
-        return ConstantValueOfFieldVariableBirthmarkExtractor.class.getName();
-    }
-
     /**
      * returns a extractor for the birthmark of this service.
      */
     @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
+    public BirthmarkExtractor getExtractor(BirthmarkService service){
         return new ConstantValueOfFieldVariableBirthmarkExtractor(service);
     }
+
+    @Override
+    public String getDescription(){
+        return "Constant Value and Field Variable birthmark";
+    }
 }
\ No newline at end of file
index 7efa926..7d1dbf2 100644 (file)
@@ -1,24 +1,18 @@
 package jp.sourceforge.stigmata.birthmarks.cvfv;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;
 import jp.sourceforge.stigmata.birthmarks.comparators.PlainBirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class ConstantValueOfFieldVariableBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
+public class ConstantValueOfFieldVariableBirthmarkService implements BirthmarkService{
        private BirthmarkComparator comparator = new PlainBirthmarkComparator(this);
     private BirthmarkExtractor extractor = new ConstantValueOfFieldVariableBirthmarkExtractor(this);
 
@@ -28,7 +22,7 @@ public class ConstantValueOfFieldVariableBirthmarkService extends AbstractBirthm
     }
 
     @Override
-    public String getDefaultDescription(){
+    public String getDescription(){
         return "Field type and its initial value.";
     }
 
@@ -53,30 +47,7 @@ public class ConstantValueOfFieldVariableBirthmarkService extends AbstractBirthm
     }
 
     @Override
-       public BirthmarkElement buildBirthmarkElement(String value) {
-       String signature = value.substring(0, value.indexOf('='));
-       String subValue = value.substring(value.indexOf('=') + 1);
-       Object elementValue = subValue;
-
-        if(subValue.equals("null")){
-            elementValue = null;
-        }
-        else{
-            switch(signature.charAt(0)){
-            case 'Z':{
-                if(value.equals("true")) elementValue = Boolean.TRUE;
-                else                     elementValue = Boolean.FALSE;
-                break;
-            }
-            case 'C': elementValue = new Character(subValue.charAt(0)); break;
-            case 'D': elementValue = new Double(subValue);  break;
-            case 'F': elementValue = new Float(subValue);   break;
-            case 'S': elementValue = new Short(subValue);   break;
-            case 'B': elementValue = new Byte(subValue);    break;
-            case 'I': elementValue = new Integer(subValue); break;
-            default:  elementValue = value; break;
-            }
-       }
-       return new TypeAndValueBirthmarkElement(signature, elementValue);
-       }
+    public BirthmarkPreprocessor getPreprocessor(){
+        return null;
+    }
 }
index f6ce897..c3c5117 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks.cvfv;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.Serializable;
@@ -13,7 +9,6 @@ import jp.sourceforge.stigmata.BirthmarkElement;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class TypeAndValueBirthmarkElement extends BirthmarkElement implements Serializable{
     private static final long serialVersionUID = 237098465735321L;
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/AbstractBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/AbstractBirthmarkExtractorService.java
deleted file mode 100644 (file)
index f337fca..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Locale;
-
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.AbstractServiceProvider;
-import jp.sourceforge.stigmata.spi.BirthmarkExtractorSpi;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
-
-/**
- * Birthmark Service Provider Interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public abstract class AbstractBirthmarkExtractorService extends AbstractServiceProvider implements BirthmarkExtractorSpi{
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public abstract String getType();
-
-    /**
-     * returns a localized description of the birthmark this service provides.
-     */
-    @Override
-    public String getDescription(Locale locale){
-        return LocalizedDescriptionManager.getInstance().getDescription(
-            locale, getType(), LocalizedDescriptionManager.ServiceCategory.extractor
-        );
-    }
-
-    /**
-     * returns a localized description of the birthmark in default locale.
-     */
-    @Override
-    public String getDescription(){
-        return getDescription(Locale.getDefault());
-    }
-
-    @Override
-    public abstract String getExtractorClassName();
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
-        try{
-            Class<?> c = Class.forName(getExtractorClassName());
-            Class<? extends BirthmarkExtractor> clazz = c.asSubclass(BirthmarkExtractor.class);
-            Constructor<? extends BirthmarkExtractor> constructor = clazz.getConstructor(BirthmarkSpi.class);
-            return constructor.newInstance(service);
-        } catch(NoSuchMethodException e){
-        } catch(InstantiationException e){
-        } catch(InvocationTargetException e){
-        } catch(ClassNotFoundException e){
-        } catch(IllegalAccessException e){
-        }
-        return null;
-    }
-}
-
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/BirthmarkExtractorFactory.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/BirthmarkExtractorFactory.java
deleted file mode 100644 (file)
index 53d64cc..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Map;
-
-import jp.sourceforge.stigmata.BirthmarkEnvironment;
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.ExtractorNotFoundException;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-import org.apache.commons.beanutils.BeanUtils;
-
-/**
- * 
- * @author Haruaki Tamada
- * @version $Revision$ 
- */
-public class BirthmarkExtractorFactory{
-    private BirthmarkEnvironment environment;
-    private Map<String, BirthmarkExtractor> extractors = new HashMap<String, BirthmarkExtractor>();
-
-    public BirthmarkExtractorFactory(BirthmarkEnvironment env){
-        this.environment = env;
-    }
-
-    public BirthmarkExtractor getExtractor(String name) throws ExtractorNotFoundException{
-        BirthmarkExtractor extractor = extractors.get(name);
-        if(extractor == null){
-            extractor = buildExtractor(name);
-            extractors.put(name, extractor);
-        }
-        return extractor;
-    }
-
-    @SuppressWarnings("rawtypes")
-    private BirthmarkExtractor buildExtractor(String birthmarkType) throws ExtractorNotFoundException{
-        BirthmarkSpi spi = environment.getService(birthmarkType);
-        BirthmarkExtractor extractor = null;
-        if(spi != null){
-            extractor = spi.getExtractor();
-            try{
-                if(extractor != null){
-                    Map props = BeanUtils.describe(extractor);
-                    props.remove("class");
-                    props.remove("provider");
-                    for(Object keyObject: props.keySet()){
-                        String key = "extractor." + spi.getType() + "." + String.valueOf(keyObject);
-                        if(environment.getProperty(key) != null){
-                            BeanUtils.setProperty(
-                                extractor, (String)keyObject, environment.getProperty(key)
-                            );
-                        }
-                    }
-                }
-            } catch(InvocationTargetException e){
-                throw new InternalError(e.getMessage());
-            } catch(NoSuchMethodException e){
-                throw new InternalError(e.getMessage());
-            } catch(IllegalAccessException e){
-                throw new InternalError(e.getMessage());
-            }
-        }
-        if(extractor == null){
-            throw new ExtractorNotFoundException("extractor not found: " + birthmarkType);
-        }
-
-        return extractor;
-    }
-}
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/FrequencyMethodCallBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/FrequencyMethodCallBirthmarkExtractorService.java
deleted file mode 100644 (file)
index b718ec3..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.fmc.FrequencyMethodCallBirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * Birthmark Service Provider Interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class FrequencyMethodCallBirthmarkExtractorService extends AbstractBirthmarkExtractorService{
-
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public String getType(){
-        return "fmc";
-    }
-
-    @Override
-    public String getExtractorClassName(){
-        return FrequencyMethodCallBirthmarkExtractor.class.getName();
-    }
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
-        return new FrequencyMethodCallBirthmarkExtractor(service);
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/FrequencyUsedClassesBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/FrequencyUsedClassesBirthmarkExtractorService.java
deleted file mode 100644 (file)
index f0f6478..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.fuc.FrequencyUsedClassesBirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * Birthmark Service Provider Interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class FrequencyUsedClassesBirthmarkExtractorService extends AbstractBirthmarkExtractorService{
-
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public String getType(){
-        return "fuc";
-    }
-
-    @Override
-    public String getExtractorClassName(){
-        return FrequencyUsedClassesBirthmarkExtractor.class.getName();
-    }
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
-        return new FrequencyUsedClassesBirthmarkExtractor(service);
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/InheritanceStructureBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/InheritanceStructureBirthmarkExtractorService.java
deleted file mode 100644 (file)
index 417d338..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.is.InheritanceStructureBirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * Birthmark Service Provider Interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class InheritanceStructureBirthmarkExtractorService extends AbstractBirthmarkExtractorService{
-
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public String getType(){
-        return "is";
-    }
-
-    @Override
-    public String getExtractorClassName(){
-        return InheritanceStructureBirthmarkExtractor.class.getName();
-    }
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
-        return new InheritanceStructureBirthmarkExtractor(service);
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/KGramBasedBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/KGramBasedBirthmarkExtractorService.java
deleted file mode 100644 (file)
index 7fe9728..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.kgram.KGramBasedBirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * Birthmark Service Provider Interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class KGramBasedBirthmarkExtractorService extends AbstractBirthmarkExtractorService{
-
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public String getType(){
-        return "kgram";
-    }
-
-    @Override
-    public String getExtractorClassName(){
-        return KGramBasedBirthmarkExtractor.class.getName();
-    }
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
-        return new KGramBasedBirthmarkExtractor(service);
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/SequentialMethodCallBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/SequentialMethodCallBirthmarkExtractorService.java
deleted file mode 100644 (file)
index 555f04a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.smc.SequentialMethodCallBirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * Birthmark Service Provider Interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class SequentialMethodCallBirthmarkExtractorService extends AbstractBirthmarkExtractorService{
-
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public String getType(){
-        return "smc";
-    }
-
-    @Override
-    public String getExtractorClassName(){
-        return SequentialMethodCallBirthmarkExtractor.class.getName();
-    }
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
-        return new SequentialMethodCallBirthmarkExtractor(service);
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/UsedClassesBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/extractors/UsedClassesBirthmarkExtractorService.java
deleted file mode 100644 (file)
index 33b396a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.extractors;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkExtractor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * Birthmark Service Provider Interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class UsedClassesBirthmarkExtractorService extends AbstractBirthmarkExtractorService{
-
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    @Override
-    public String getType(){
-        return "uc";
-    }
-
-    @Override
-    public String getExtractorClassName(){
-        return UsedClassesBirthmarkExtractor.class.getName();
-    }
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    @Override
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service){
-        return new UsedClassesBirthmarkExtractor(service);
-    }
-}
\ No newline at end of file
index 96b660f..a3e2086 100644 (file)
@@ -1,27 +1,23 @@
 package jp.sourceforge.stigmata.birthmarks.fmc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
+import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.ExtractionUnit;
 import jp.sourceforge.stigmata.birthmarks.ASMBirthmarkExtractor;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
 import jp.sourceforge.stigmata.birthmarks.FrequencyBirthmark;
 import jp.sourceforge.stigmata.birthmarks.FrequencyBirthmarkElement;
 import jp.sourceforge.stigmata.birthmarks.smc.SequentialMethodCallBirthmarkExtractVisitor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.objectweb.asm.ClassWriter;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class FrequencyMethodCallBirthmarkExtractor extends ASMBirthmarkExtractor{
-    public FrequencyMethodCallBirthmarkExtractor(BirthmarkSpi spi){
+    public FrequencyMethodCallBirthmarkExtractor(BirthmarkService spi){
         super(spi);
     }
 
@@ -50,4 +46,10 @@ public class FrequencyMethodCallBirthmarkExtractor extends ASMBirthmarkExtractor
     public Birthmark createBirthmark(){
         return new FrequencyBirthmark(getProvider().getType());
     }
+
+
+    @Override
+    public BirthmarkElement buildElement(String value) {
+        return new FrequencyBirthmarkElement(value);
+    }
 }
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/fmc/FrequencyMethodCallBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/fmc/FrequencyMethodCallBirthmarkExtractorService.java
new file mode 100644 (file)
index 0000000..faaad00
--- /dev/null
@@ -0,0 +1,34 @@
+package jp.sourceforge.stigmata.birthmarks.fmc;
+
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.spi.BirthmarkExtractorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+
+/**
+ * Birthmark Service Provider Interface.
+ *
+ * @author Haruaki TAMADA
+ */
+public class FrequencyMethodCallBirthmarkExtractorService implements BirthmarkExtractorService{
+
+    /**
+     * returns a type of the birthmark this service provides.
+     */
+    @Override
+    public String getType(){
+        return "fmc";
+    }
+
+    /**
+     * returns a extractor for the birthmark of this service.
+     */
+    @Override
+    public BirthmarkExtractor getExtractor(BirthmarkService service){
+        return new FrequencyMethodCallBirthmarkExtractor(service);
+    }
+
+    @Override
+    public String getDescription(){
+        return "Frequency of Method Calls birthmark";
+    }
+}
\ No newline at end of file
index 0c68ca5..2aaf418 100644 (file)
@@ -1,25 +1,18 @@
 package jp.sourceforge.stigmata.birthmarks.fmc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
-import jp.sourceforge.stigmata.birthmarks.FrequencyBirthmarkElement;
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;
 import jp.sourceforge.stigmata.birthmarks.comparators.CosineSimilarityBirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class FrequencyMethodCallBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
+public class FrequencyMethodCallBirthmarkService implements BirthmarkService{
     private BirthmarkComparator comparator = new CosineSimilarityBirthmarkComparator(this);
     private BirthmarkExtractor extractor = new FrequencyMethodCallBirthmarkExtractor(this);
 
@@ -29,11 +22,6 @@ public class FrequencyMethodCallBirthmarkService extends AbstractBirthmarkServic
     }
 
     @Override
-    public String getDefaultDescription(){
-        return "Frequency of method call which order is appeared in method definition.";
-    }
-
-    @Override
     public BirthmarkExtractor getExtractor(){
         return extractor;
     }
@@ -53,8 +41,13 @@ public class FrequencyMethodCallBirthmarkService extends AbstractBirthmarkServic
         return false;
     }
 
-       @Override
-       public BirthmarkElement buildBirthmarkElement(String value) {
-       return new FrequencyBirthmarkElement(value);
-       }
+    @Override
+    public String getDescription(){
+        return "Frequency of Method Calls";
+    }
+
+    @Override
+    public BirthmarkPreprocessor getPreprocessor(){
+        return null;
+    }
 }
index b57fd07..a7c7ec3 100644 (file)
@@ -1,27 +1,24 @@
 package jp.sourceforge.stigmata.birthmarks.fuc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
+import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.ExtractionUnit;
 import jp.sourceforge.stigmata.birthmarks.ASMBirthmarkExtractor;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
 import jp.sourceforge.stigmata.birthmarks.FrequencyBirthmark;
+import jp.sourceforge.stigmata.birthmarks.FrequencyBirthmarkElement;
 import jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkExtractVisitor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.objectweb.asm.ClassWriter;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class FrequencyUsedClassesBirthmarkExtractor extends ASMBirthmarkExtractor{
-    public FrequencyUsedClassesBirthmarkExtractor(BirthmarkSpi spi){
+    public FrequencyUsedClassesBirthmarkExtractor(BirthmarkService spi){
         super(spi);
     }
 
@@ -45,4 +42,8 @@ public class FrequencyUsedClassesBirthmarkExtractor extends ASMBirthmarkExtracto
     public Birthmark createBirthmark(){
         return new FrequencyBirthmark(getProvider().getType());
     }
+
+    public BirthmarkElement buildElement(String value){
+        return new FrequencyBirthmarkElement(value);
+    }
 }
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/fuc/FrequencyUsedClassesBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/fuc/FrequencyUsedClassesBirthmarkExtractorService.java
new file mode 100644 (file)
index 0000000..8a2eeee
--- /dev/null
@@ -0,0 +1,34 @@
+package jp.sourceforge.stigmata.birthmarks.fuc;
+
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.spi.BirthmarkExtractorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+
+/**
+ * Birthmark Service Provider Interface.
+ *
+ * @author Haruaki TAMADA
+ */
+public class FrequencyUsedClassesBirthmarkExtractorService implements BirthmarkExtractorService{
+
+    /**
+     * returns a type of the birthmark this service provides.
+     */
+    @Override
+    public String getType(){
+        return "fuc";
+    }
+
+    /**
+     * returns a extractor for the birthmark of this service.
+     */
+    @Override
+    public BirthmarkExtractor getExtractor(BirthmarkService service){
+        return new FrequencyUsedClassesBirthmarkExtractor(service);
+    }
+
+    @Override
+    public String getDescription(){
+        return "Frequency of Used Classes birthmark";
+    }
+}
\ No newline at end of file
index c7d6513..d43874d 100644 (file)
@@ -1,25 +1,18 @@
 package jp.sourceforge.stigmata.birthmarks.fuc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
-import jp.sourceforge.stigmata.birthmarks.FrequencyBirthmarkElement;
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;
 import jp.sourceforge.stigmata.birthmarks.comparators.CosineSimilarityBirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class FrequencyUsedClassesBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
+public class FrequencyUsedClassesBirthmarkService implements BirthmarkService{
     private BirthmarkComparator comparator = new CosineSimilarityBirthmarkComparator(this);
     private BirthmarkExtractor extractor = new FrequencyUsedClassesBirthmarkExtractor(this);
 
@@ -29,7 +22,7 @@ public class FrequencyUsedClassesBirthmarkService extends AbstractBirthmarkServi
     }
 
     @Override
-    public String getDefaultDescription(){
+    public String getDescription(){
         return "Frequency of used classes in target class.";
     }
 
@@ -53,7 +46,8 @@ public class FrequencyUsedClassesBirthmarkService extends AbstractBirthmarkServi
         return false;
     }
 
-    public BirthmarkElement createBirthmarkElement(String value){
-       return new FrequencyBirthmarkElement(value);
+    @Override
+    public BirthmarkPreprocessor getPreprocessor(){
+        return null;
     }
 }
index 5f095c2..7f71e9d 100644 (file)
@@ -1,24 +1,23 @@
 package jp.sourceforge.stigmata.birthmarks.is;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
 import jp.sourceforge.stigmata.birthmarks.NullBirthmarkElement;
+import jp.sourceforge.stigmata.digger.ClassFileEntry;
+import jp.sourceforge.stigmata.digger.ClasspathContext;
 import jp.sourceforge.stigmata.utils.WellknownClassManager;
 
 import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.Opcodes;
+
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class InheritanceStructureBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
     public InheritanceStructureBirthmarkExtractVisitor(ClassVisitor visitor, Birthmark birthmark, BirthmarkContext context){
@@ -28,16 +27,44 @@ public class InheritanceStructureBirthmarkExtractVisitor extends BirthmarkExtrac
     @Override
     public void visit(int version, int access, String name, String signature,
                       String superName, String[] interfaces){
-        try {
-            Class<?> c = getEnvironment().getClasspathContext().findClass(name.replace('/', '.'));
-            if(c != null && !c.isInterface()){
-                addISBirthmark(c);
+        if((access & Opcodes.ACC_INTERFACE) != Opcodes.ACC_INTERFACE){
+            ClasspathContext context = getEnvironment().getClasspathContext();
+            name = name.replace('/', '.');
+            ClassFileEntry entry = context.findEntry(name);
+            if(entry == null){
+                superName = superName.replace('/', '.');
+                ClassFileEntry parent = context.findEntry(superName);
+                if(parent != null){
+                    addIsBirthmark(name);
+                    addIsBirthmark(superName);
+                }
+                else{
+                    addFailur(new ClassNotFoundException(superName));
+                }
+            }
+            else{
+                try{
+                    Class<?> clazz = context.findClass(name);
+                    addISBirthmark(clazz);
+                } catch(ClassNotFoundException e){
+                    addFailur(e);
+                }
             }
-        } catch (ClassNotFoundException ex){
-            addFailur(ex);
         }
     }
 
+    private void addIsBirthmark(String className){
+        WellknownClassManager wcm = getEnvironment().getWellknownClassManager();
+        BirthmarkElement element;
+        if(wcm.isWellKnownClass(className)){
+            element = new BirthmarkElement(className);
+        }
+        else{
+            element = NullBirthmarkElement.getInstance();
+        }
+        addElement(element);
+    }
+
     private void addISBirthmark(Class<?> c){
         WellknownClassManager wcm = getEnvironment().getWellknownClassManager();
         do{
index 1313460..d039eb9 100644 (file)
@@ -1,20 +1,17 @@
 package jp.sourceforge.stigmata.birthmarks.is;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.InputStream;
 
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
+import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.BirthmarkElementClassNotFoundException;
 import jp.sourceforge.stigmata.BirthmarkExtractionFailedException;
 import jp.sourceforge.stigmata.ExtractionUnit;
 import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkExtractor;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassWriter;
@@ -23,10 +20,9 @@ import org.objectweb.asm.ClassWriter;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class InheritanceStructureBirthmarkExtractor extends AbstractBirthmarkExtractor{
-    public InheritanceStructureBirthmarkExtractor(BirthmarkSpi spi){
+    public InheritanceStructureBirthmarkExtractor(BirthmarkService spi){
         super(spi);
     }
 
@@ -70,4 +66,9 @@ public class InheritanceStructureBirthmarkExtractor extends AbstractBirthmarkExt
     public ExtractionUnit[] getAcceptableUnits(){
         return new ExtractionUnit[] { ExtractionUnit.CLASS, };
     }
+
+    @Override
+    public BirthmarkElement buildElement(String value){
+        return new BirthmarkElement(value);
+    }
 }
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractorService.java
new file mode 100644 (file)
index 0000000..6b7ef2b
--- /dev/null
@@ -0,0 +1,34 @@
+package jp.sourceforge.stigmata.birthmarks.is;
+
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.spi.BirthmarkExtractorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+
+/**
+ * Birthmark Service Provider Interface.
+ *
+ * @author Haruaki TAMADA
+ */
+public class InheritanceStructureBirthmarkExtractorService implements BirthmarkExtractorService{
+
+    /**
+     * returns a type of the birthmark this service provides.
+     */
+    @Override
+    public String getType(){
+        return "is";
+    }
+
+    /**
+     * returns a extractor for the birthmark of this service.
+     */
+    @Override
+    public BirthmarkExtractor getExtractor(BirthmarkService service){
+        return new InheritanceStructureBirthmarkExtractor(service);
+    }
+
+    @Override
+    public String getDescription(){
+        return "Inheritance Structure birthmark";
+    }
+}
\ No newline at end of file
index c677cb5..f8355bf 100644 (file)
@@ -1,23 +1,18 @@
 package jp.sourceforge.stigmata.birthmarks.is;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
 import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;
 import jp.sourceforge.stigmata.birthmarks.comparators.PlainBirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class InheritanceStructureBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
+public class InheritanceStructureBirthmarkService implements BirthmarkService{
     private BirthmarkComparator comparator = new PlainBirthmarkComparator(this);
     private BirthmarkExtractor extractor = new InheritanceStructureBirthmarkExtractor(this);
 
@@ -27,7 +22,7 @@ public class InheritanceStructureBirthmarkService extends AbstractBirthmarkServi
     }
 
     @Override
-    public String getDefaultDescription(){
+    public String getDescription(){
         return "Inheritance sequence to root class and user classes is replaced to <null>.";
     }
 
@@ -50,4 +45,9 @@ public class InheritanceStructureBirthmarkService extends AbstractBirthmarkServi
     public boolean isUserDefined(){
         return false;
     }
+
+    @Override
+    public BirthmarkPreprocessor getPreprocessor(){
+        return null;
+    }
 }
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGram.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGram.java
deleted file mode 100644 (file)
index 0c5a972..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;
-
-/*
- * $Id$
- */
-
-import java.io.Serializable;
-import java.lang.reflect.Array;
-import java.util.Arrays;
-
-/**
- * This class represents k-gram of the some sequence. 
- * 
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class KGram<T> implements Serializable{
-    private static final long serialVersionUID = 273465874532523L;
-    // private List<T> list = new ArrayList<T>();
-    private int maxLength = 4;
-    private T[] values;
-
-    /**
-     * constructor.
-     * @param kvalue the number of elements of this object.
-     */
-    public KGram(int kvalue){
-        setKValue(kvalue);
-    }
-
-    /**
-     * sets k-value. 
-     * @param kvalue the number of elements of this object.
-     */
-    public void setKValue(int kvalue){
-        this.maxLength = kvalue;
-    }
-
-    /**
-     * returns k-value which is the number of elements.
-     * @return the number of elements.
-     */
-    public int getKValue(){
-        return maxLength;
-    }
-
-    /**
-     * returns string representation of this object.
-     */
-    @Override
-    public String toString(){
-        StringBuffer buffer = new StringBuffer("{ ");
-        for(int i = 0; i < maxLength; i++){
-            if(i != 0) buffer.append(", ");
-            buffer.append(get(i));
-        }
-        buffer.append(" }");
-        return new String(buffer);
-    }
-
-    /**
-     * sets the given value to kgram element at given index.
-     * @param index index.
-     * @param value value.
-     */
-    @SuppressWarnings("unchecked")
-    public void set(int index, T value){
-        if(index < 0 || index >= maxLength){
-            throw new ArrayIndexOutOfBoundsException("expected 0-" + (maxLength - 1) + ": " + index);
-        }
-        if(value == null){
-            throw new NullPointerException("null value");
-        }
-        if(values == null){
-            values = (T[])Array.newInstance(value.getClass(), getKValue());
-        }
-        values[index] = value;
-    }
-
-    /**
-     * returns an object of given index.
-     */
-    public T get(int index){
-        T returnValue = null;
-        if(index < 0 || index >= maxLength){
-            throw new ArrayIndexOutOfBoundsException("expected 0-" + (maxLength - 1) + ": " + index);
-        }
-        if(values != null){
-            returnValue = values[index];
-        }
-
-        return returnValue;
-    }
-
-    /**
-     * adds value at last index.
-     * 
-     * this object is called with given 2 when following situation, 
-     * <ul>
-     *   <li>``{ 1, 3, null, null }'' -&gt; ``{ 1, 2, 3, null }'' and return 2<li>
-     *   <li>``{ 1, null, 3, null }'' -&gt; ``{ 1, 2, 3, null }'' and return 1<li>
-     *   <li>``{ 1, 2, 3, 4 }'' -&gt; ``{ 1, 2, 3, 4 }'' and return -1<li>
-     * </ul>
-     * 
-     * @param value value for addition.
-     * @return added index.
-     */
-    public int add(T value){
-        int index = -1;
-        for(int i = 0; i < values.length; i++){
-            if(values[i] == null){
-                index = i;
-                values[i] = value;
-                break;
-            }
-        }
-        return index;
-    }
-
-    /**
-     * returns an array of elements this object has.
-     * @return
-     */
-    @SuppressWarnings("unchecked")
-    public T[] toArray(){
-        if(values == null){
-            throw new IllegalStateException("this object has no elements.");
-        }
-        T[] newarray = (T[])Array.newInstance(values[0].getClass(), getKValue());
-        System.arraycopy(values, 0, newarray, 0, getKValue());
-        return newarray;
-    }
-
-    @Override
-    public boolean equals(Object o){
-        if(o instanceof KGram){
-            KGram<?> kgram = (KGram<?>)o;
-            boolean flag = getKValue() == kgram.getKValue();
-            for(int i = 0; !flag && i < maxLength; i++){
-                if(!get(i).equals(kgram.get(i))){
-                    flag = false;
-                    break;
-                }
-            }
-            return flag;
-        }
-        return false;
-    }
-
-    @Override
-    public int hashCode(){
-        return Arrays.hashCode(values);
-    }
-}
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkElement.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkElement.java
deleted file mode 100644 (file)
index ea95599..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkElement;
-
-/**
- * 
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class KGramBasedBirthmarkElement<T> extends BirthmarkElement{
-    private static final long serialVersionUID = 28546543857543634L;
-
-    private KGram<T> kgram;
-
-    public KGramBasedBirthmarkElement(KGram<T> kgram){
-        super(kgram.toString());
-        this.kgram = kgram;
-    }
-
-    @Override
-    @SuppressWarnings("rawtypes")
-    public boolean equals(Object o){
-        return o instanceof KGramBasedBirthmarkElement &&
-            kgram.equals(((KGramBasedBirthmarkElement)o).kgram);
-    }
-
-    @Override
-    public int hashCode(){
-        int v = kgram.hashCode();
-
-        return (v & 0xff << 24) | (v >> 8); 
-    }
-}
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkExtractVisitor.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkExtractVisitor.java
deleted file mode 100644 (file)
index 48ba330..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;
-
-/*
- * $Id$
- */
-
-import java.util.ArrayList;
-import java.util.List;
-
-import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkContext;
-import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
-
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.MethodVisitor;
-
-/**
- * 
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class KGramBasedBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
-    private int kvalue;
-    private List<Integer> opcodes = new ArrayList<Integer>();
-
-    public KGramBasedBirthmarkExtractVisitor(ClassVisitor visitor, Birthmark birthmark, BirthmarkContext context){
-        super(visitor, birthmark, context);
-    }
-
-    public int getKValue(){
-        return kvalue;
-    }
-
-    public void setKValue(int kvalue){
-        this.kvalue = kvalue;
-    }
-
-    @Override
-    public void visitEnd(){
-        KGramBuilder builder = KGramBuilder.getInstance();
-        KGram<Integer>[] kgrams = builder.<Integer>buildKGram(opcodes, getKValue());
-
-        for(KGram<Integer> kgram: kgrams){
-            addElement(new KGramBasedBirthmarkElement<Integer>(kgram));
-        }
-    }
-
-    @Override
-    public MethodVisitor visitMethod(int arg0, String arg1, String arg2, String arg3, String[] arg4){
-        MethodVisitor visitor = super.visitMethod(arg0, arg1, arg2, arg3, arg4);
-        MethodVisitor opcodeVisitor = new OpcodeExtractionMethodVisitor(visitor, opcodes);
-
-        return opcodeVisitor;
-    }
-}
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkExtractor.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkExtractor.java
deleted file mode 100644 (file)
index fc785be..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkContext;
-import jp.sourceforge.stigmata.ExtractionUnit;
-import jp.sourceforge.stigmata.birthmarks.ASMBirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-import org.objectweb.asm.ClassWriter;
-
-/**
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class KGramBasedBirthmarkExtractor extends ASMBirthmarkExtractor{
-    private int kvalue = 4;
-
-    public KGramBasedBirthmarkExtractor(BirthmarkSpi spi){
-        super(spi);
-    }
-
-    public KGramBasedBirthmarkExtractor(){
-        super();
-    }
-
-    public void setKValue(int kvalue){
-        this.kvalue = kvalue;
-    }
-
-    public int getKValue(){
-        return kvalue;
-    }
-
-    @Override
-    public BirthmarkExtractVisitor createExtractVisitor(ClassWriter writer, Birthmark birthmark, BirthmarkContext context){
-        KGramBasedBirthmarkExtractVisitor extractor = new KGramBasedBirthmarkExtractVisitor(writer, birthmark, context);
-        extractor.setKValue(getKValue());
-        return extractor;
-    }
-
-    @Override
-    public ExtractionUnit[] getAcceptableUnits(){
-        return new ExtractionUnit[] {
-            ExtractionUnit.CLASS, ExtractionUnit.PACKAGE, ExtractionUnit.ARCHIVE, 
-        };
-    }
-}
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBasedBirthmarkService.java
deleted file mode 100644 (file)
index d378728..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
-import jp.sourceforge.stigmata.birthmarks.comparators.LogicalAndBirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-
-/**
- * 
- * 
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class KGramBasedBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
-    private BirthmarkComparator comparator = new LogicalAndBirthmarkComparator(this);
-    private BirthmarkExtractor extractor = new KGramBasedBirthmarkExtractor(this);
-
-    @Override
-    public String getType(){
-        return "kgram";
-    }
-
-    @Override
-    public String getDefaultDescription(){
-        return "k-gram based birthmark.";
-    }
-
-    @Override
-    public BirthmarkExtractor getExtractor(){
-        return extractor;
-    }
-
-    @Override
-    public BirthmarkComparator getComparator(){
-        return comparator;
-    }
-
-    @Override
-    public boolean isExperimental(){
-        return false;
-    }
-
-    @Override
-    public boolean isUserDefined(){
-        return false;
-    }
-
-       @Override
-       public BirthmarkElement buildBirthmarkElement(String value) {
-               value = value.trim();
-               if(value.startsWith("{") && value.endsWith("}")){
-                       String[] param = value.substring(1, value.length() - 1).split(", *");
-                       KGram<Integer> kgram = new KGram<Integer>(param.length);
-                       for(int i = 0; i < param.length; i++){
-                               kgram.set(i, new Integer(param[i].trim()));
-                       }
-                       return new KGramBasedBirthmarkElement<Integer>(kgram);
-               }
-               return null;
-       }
-}
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBuilder.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramBuilder.java
deleted file mode 100644 (file)
index 3eacdd7..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;\r
-\r
-/*\r
- * $Id$\r
- */\r
-\r
-import java.util.LinkedHashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-/**\r
- * @author Haruaki Tamada\r
- * @version $Revision$\r
- */\r
-public class KGramBuilder{\r
-    private static final KGramBuilder builder = new KGramBuilder();\r
-\r
-    /**\r
-     * private constructor for singleton pattern.\r
-     */\r
-    private KGramBuilder(){\r
-    }\r
-\r
-    public static KGramBuilder getInstance(){\r
-        return builder;\r
-    }\r
-\r
-    @SuppressWarnings("unchecked")\r
-    public <T> KGram<T>[] buildKGram(T[] values, int kvalue){\r
-        Set<KGram<T>> kgrams = new LinkedHashSet<KGram<T>>();\r
-\r
-        if(values.length >= kvalue){\r
-            int max = values.length - (kvalue - 1);\r
-            for(int i = 0; i < max; i++){\r
-                KGram<T> kgram = new KGram<T>(kvalue);\r
-                for(int j = 0; j < kvalue; j++){\r
-                    kgram.set(j, values[i + j]);\r
-                }\r
-                kgrams.add(kgram);\r
-            }\r
-        }\r
-        return kgrams.toArray(new KGram[kgrams.size()]);\r
-    }\r
-\r
-    @SuppressWarnings("unchecked")\r
-    public <T> KGram<T>[] buildKGram(List<T> values, int kvalue){\r
-        Set<KGram<T>> kgrams = new LinkedHashSet<KGram<T>>();\r
-\r
-        if(values.size() >= kvalue){\r
-            int max = values.size() - (kvalue - 1);\r
-            for(int i = 0; i < max; i++){\r
-                KGram<T> kgram = new KGram<T>(kvalue);\r
-                for(int j = 0; j < kvalue; j++){\r
-                    kgram.set(j, values.get(i + j));\r
-                }\r
-                kgrams.add(kgram);\r
-            }\r
-        }\r
-        return kgrams.toArray(new KGram[kgrams.size()]);\r
-    }\r
-}
\ No newline at end of file
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/OpcodeExtractionMethodVisitor.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/kgram/OpcodeExtractionMethodVisitor.java
deleted file mode 100644 (file)
index e46ea05..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;
-
-/*
- * $Id$
- */
-
-import java.util.List;
-
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodAdapter;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-
-/**
- * 
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class OpcodeExtractionMethodVisitor extends MethodAdapter{
-    private List<Integer> opcodes;
-
-    public OpcodeExtractionMethodVisitor(MethodVisitor visitor, List<Integer> opcodes){
-        super(visitor);
-        this.opcodes = opcodes;
-    }
-
-    @Override
-    public void visitFieldInsn(int opcode, String owner, String name, String desc){
-        opcodes.add(opcode);
-        super.visitFieldInsn(opcode, owner, name, desc);
-    }
-
-    @Override
-    public void visitIincInsn(int var, int increment){
-        opcodes.add(Opcodes.IINC);
-        super.visitIincInsn(var, increment);
-    }
-
-    @Override
-    public void visitInsn(int opcode){
-        opcodes.add(opcode);
-        super.visitInsn(opcode);
-    }
-
-    @Override
-    public void visitIntInsn(int opcode, int operand){
-        opcodes.add(opcode);
-        super.visitIntInsn(opcode, operand);
-    }
-
-    @Override
-    public void visitJumpInsn(int opcode, Label label){
-        opcodes.add(opcode);
-        super.visitJumpInsn(opcode, label);
-    }
-
-    @Override
-    public void visitLdcInsn(Object value){
-        opcodes.add(Opcodes.LDC);
-        super.visitLdcInsn(value);
-    }
-
-    @Override
-    public void visitLookupSwitchInsn(Label defaultHandle, int[] keys, Label[] labels){
-        opcodes.add(Opcodes.LOOKUPSWITCH);
-        super.visitLookupSwitchInsn(defaultHandle, keys, labels);
-    }
-
-    @Override
-    public void visitMethodInsn(int opcode, String owner, String name, String desc){
-        opcodes.add(opcode);
-        super.visitMethodInsn(opcode, owner, name, desc);
-    }
-
-    @Override
-    public void visitMultiANewArrayInsn(String desc, int dims){
-        opcodes.add(Opcodes.MULTIANEWARRAY);
-        super.visitMultiANewArrayInsn(desc, dims);
-    }
-
-    @Override
-    public void visitTableSwitchInsn(int min, int max, Label defaultLabel, Label[] labels){
-        opcodes.add(Opcodes.TABLESWITCH);
-        super.visitTableSwitchInsn(min, max, defaultLabel, labels);
-    }
-
-    @Override
-    public void visitTypeInsn(int opcode, String desc){
-        opcodes.add(opcode);
-        super.visitTypeInsn(opcode, desc);
-    }
-
-    @Override
-    public void visitVarInsn(int opcode, int var){
-        opcodes.add(opcode);
-        super.visitVarInsn(opcode, var);
-    }
-}
index 55b1159..77dbda2 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks.smc;
 
-/*
- * $Id$
- */
-
 import java.io.Serializable;
 
 import jp.sourceforge.stigmata.BirthmarkElement;
@@ -11,7 +7,6 @@ import jp.sourceforge.stigmata.BirthmarkElement;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class MethodCallBirthmarkElement extends BirthmarkElement implements Serializable {
     private static final long serialVersionUID = -3178451461780859954L;
index 19e1087..a8520a5 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks.smc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
@@ -17,7 +13,6 @@ import org.objectweb.asm.MethodVisitor;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class SequentialMethodCallBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
     public SequentialMethodCallBirthmarkExtractVisitor(ClassVisitor visitor, Birthmark birthmark, BirthmarkContext context){
index 6a3b26e..b21bdc4 100644 (file)
@@ -1,24 +1,20 @@
 package jp.sourceforge.stigmata.birthmarks.smc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
+import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.ExtractionUnit;
 import jp.sourceforge.stigmata.birthmarks.ASMBirthmarkExtractor;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.objectweb.asm.ClassWriter;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class SequentialMethodCallBirthmarkExtractor extends ASMBirthmarkExtractor{
-    public SequentialMethodCallBirthmarkExtractor(BirthmarkSpi spi){
+    public SequentialMethodCallBirthmarkExtractor(BirthmarkService spi){
         super(spi);
     }
 
@@ -35,4 +31,13 @@ public class SequentialMethodCallBirthmarkExtractor extends ASMBirthmarkExtracto
     public ExtractionUnit[] getAcceptableUnits(){
         return new ExtractionUnit[] { ExtractionUnit.CLASS, ExtractionUnit.ARCHIVE, ExtractionUnit.PACKAGE, };
     }
+
+    @Override
+    public BirthmarkElement buildElement(String value) {
+        String className = value.substring(0, value.indexOf('#'));
+        String methodName = value.substring(value.indexOf('#') + 1, value.lastIndexOf('!'));
+        String signature = value.substring(value.lastIndexOf('!') + 1);
+
+        return new MethodCallBirthmarkElement(className, methodName, signature);
+    }
 }
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractorService.java
new file mode 100644 (file)
index 0000000..6e23009
--- /dev/null
@@ -0,0 +1,34 @@
+package jp.sourceforge.stigmata.birthmarks.smc;
+
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.spi.BirthmarkExtractorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+
+/**
+ * Birthmark Service Provider Interface.
+ *
+ * @author Haruaki TAMADA
+ */
+public class SequentialMethodCallBirthmarkExtractorService implements BirthmarkExtractorService{
+
+    /**
+     * returns a type of the birthmark this service provides.
+     */
+    @Override
+    public String getType(){
+        return "smc";
+    }
+
+    /**
+     * returns a extractor for the birthmark of this service.
+     */
+    @Override
+    public BirthmarkExtractor getExtractor(BirthmarkService service){
+        return new SequentialMethodCallBirthmarkExtractor(service);
+    }
+
+    @Override
+    public String getDescription(){
+        return "Sequence of Method Calls birthmark";
+    }
+}
\ No newline at end of file
index 5b6ee46..3891d4c 100644 (file)
@@ -1,24 +1,18 @@
 package jp.sourceforge.stigmata.birthmarks.smc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;
 import jp.sourceforge.stigmata.birthmarks.comparators.PlainBirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class SequentialMethodCallBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
+public class SequentialMethodCallBirthmarkService implements BirthmarkService{
     private BirthmarkComparator comparator = new PlainBirthmarkComparator(this);
     private BirthmarkExtractor extractor = new SequentialMethodCallBirthmarkExtractor(this);
 
@@ -28,7 +22,7 @@ public class SequentialMethodCallBirthmarkService extends AbstractBirthmarkServi
     }
 
     @Override
-    public String getDefaultDescription(){
+    public String getDescription(){
         return "Sequence of method call which order is appeared in method definition.";
     }
 
@@ -52,12 +46,8 @@ public class SequentialMethodCallBirthmarkService extends AbstractBirthmarkServi
         return false;
     }
 
-       @Override
-       public BirthmarkElement buildBirthmarkElement(String value) {
-               String className = value.substring(0, value.indexOf('#'));
-               String methodName = value.substring(value.indexOf('#') + 1, value.lastIndexOf('!'));
-               String signature = value.substring(value.lastIndexOf('!') + 1);
-
-               return new MethodCallBirthmarkElement(className, methodName, signature);
-       }
+    @Override
+    public BirthmarkPreprocessor getPreprocessor(){
+        return null;
+    }
 }
index 7d804c0..be8770e 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata.birthmarks.uc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.birthmarks.PlainBirthmark;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 class UsedClassesBirthmark extends PlainBirthmark{
     private static final long serialVersionUID = -1043130948373105655L;
index 8a254d6..0ff0b4e 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks.uc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
@@ -21,7 +17,6 @@ import org.objectweb.asm.signature.SignatureWriter;
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
     public UsedClassesBirthmarkExtractVisitor(ClassVisitor visitor, Birthmark birthmark,
@@ -34,13 +29,9 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
             String superName, String[] interfaces){
         addSignatureClass(signature);
 
-        if(getEnvironment().getWellknownClassManager().isWellKnownClass(superName)){
-            add(superName);
-        }
+        addUCElement(superName);
         for(String i: interfaces){
-            if(getEnvironment().getWellknownClassManager().isWellKnownClass(i)){
-                add(i);
-            }
+            addUCElement(i);
         }
     }
 
@@ -60,9 +51,7 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
                                      String signature, String[] exceptions){
         if(exceptions != null){
             for(String exception: exceptions){
-                if(getEnvironment().getWellknownClassManager().isWellKnownClass(exception)){
-                    add(exception);
-                }
+                addUCElement(exception);
             }
         }
         addMethodDescriptor(desc);
@@ -75,7 +64,7 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
             public void visitTypeInsn(int opcode, String desc){
                 Type type = Type.getType("L" + desc + ";");
                 if(checkType(type)){
-                    add(desc);
+                    addUCElement(desc);
                 }
                 super.visitTypeInsn(opcode, desc);
             }
@@ -84,7 +73,7 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
             public void visitTryCatchBlock(Label start, Label end, Label handle, String desc){
                 Type type = Type.getType("L" + desc + ";");
                 if(checkType(type)){
-                    add(getType(type));
+                    addUCElement(getType(type));
                 }
                 super.visitTryCatchBlock(start, end, handle, desc);
             }
@@ -93,7 +82,7 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
             public void visitMultiANewArrayInsn(String desc, int dims){
                 Type type = Type.getType(desc);
                 if(checkType(type)){
-                    add(getType(type));
+                    addUCElement(getType(type));
                 }
                 super.visitMultiANewArrayInsn(desc, dims);
             }
@@ -102,7 +91,7 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
             public void visitLocalVariable(String name, String desc, String signature,
                                            Label start, Label end, int index){
                 if(checkType(Type.getType(desc))){
-                    add(desc);
+                    addUCElement(desc);
                 }
                 addSignatureClass(signature);
 
@@ -111,18 +100,14 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
 
             @Override
             public void visitFieldInsn(int opcode, String owner, String name, String desc){
-                if(getEnvironment().getWellknownClassManager().isWellKnownClass(owner)){
-                    add(owner);
-                }
+                addUCElement(owner);
                 addDescriptor(desc);
                 super.visitFieldInsn(opcode, owner, name, desc);
             }
             @Override
             public void visitMethodInsn(int opcode, String owner, String name, String desc){
                 String className = normalize(owner);
-                if(getEnvironment().getWellknownClassManager().isWellKnownClass(className)){
-                    add(className);
-                }
+                addUCElement(className);
                 addMethodDescriptor(desc);
                 super.visitMethodInsn(opcode, owner, name, desc);
             }
@@ -135,9 +120,7 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
             SignatureWriter writer = new SignatureWriter(){
                 @Override
                 public void visitClassType(String classType){
-                    if(getEnvironment().getWellknownClassManager().isWellKnownClass(classType)){
-                        add(classType);
-                    }
+                    addUCElement(classType);
                 }
             };
             in.accept(writer);
@@ -148,11 +131,11 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
         Type returnType = Type.getReturnType(desc);
         Type[] args = Type.getArgumentTypes(desc);
         if(checkType(returnType)){
-            add(getType(returnType));
+            addUCElement(getType(returnType));
         }
         for(Type arg: args){
             if(checkType(arg)){
-                add(getType(arg));
+                addUCElement(getType(arg));
             }
         }
     }
@@ -160,7 +143,7 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
     private void addDescriptor(String desc){
         Type type = Type.getType(desc);
         if(checkType(type)){
-            add(desc);
+            addUCElement(desc);
         }
     }
 
@@ -203,7 +186,9 @@ public class UsedClassesBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
         return name;
     }
 
-    private void add(String name){
-        addElement(new BirthmarkElement(normalize(name)));
+    private void addUCElement(String name){
+        if(getEnvironment().getWellknownClassManager().isWellKnownClass(name)){
+            addElement(new BirthmarkElement(normalize(name)));
+        }
     }
 }
index 203f10e..c6684ce 100644 (file)
@@ -1,25 +1,21 @@
 package jp.sourceforge.stigmata.birthmarks.uc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Birthmark;
 import jp.sourceforge.stigmata.BirthmarkContext;
+import jp.sourceforge.stigmata.BirthmarkElement;
 import jp.sourceforge.stigmata.ExtractionUnit;
 import jp.sourceforge.stigmata.birthmarks.ASMBirthmarkExtractor;
 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.objectweb.asm.ClassWriter;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class UsedClassesBirthmarkExtractor extends ASMBirthmarkExtractor{
-    public UsedClassesBirthmarkExtractor(BirthmarkSpi spi){
+    public UsedClassesBirthmarkExtractor(BirthmarkService spi){
         super(spi);
     }
 
@@ -43,4 +39,9 @@ public class UsedClassesBirthmarkExtractor extends ASMBirthmarkExtractor{
     public Birthmark createBirthmark(){
         return new UsedClassesBirthmark(getProvider().getType());
     }
+
+    @Override
+    public BirthmarkElement buildElement(String value){
+        return new BirthmarkElement(value);
+    }
 }
diff --git a/src/main/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractorService.java b/src/main/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractorService.java
new file mode 100644 (file)
index 0000000..58f682c
--- /dev/null
@@ -0,0 +1,34 @@
+package jp.sourceforge.stigmata.birthmarks.uc;
+
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.spi.BirthmarkExtractorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+
+/**
+ * Birthmark Service Provider Interface.
+ *
+ * @author Haruaki TAMADA
+ */
+public class UsedClassesBirthmarkExtractorService implements BirthmarkExtractorService{
+
+    /**
+     * returns a type of the birthmark this service provides.
+     */
+    @Override
+    public String getType(){
+        return "uc";
+    }
+
+    /**
+     * returns a extractor for the birthmark of this service.
+     */
+    @Override
+    public BirthmarkExtractor getExtractor(BirthmarkService service){
+        return new UsedClassesBirthmarkExtractor(service);
+    }
+
+    @Override
+    public String getDescription(){
+        return "Used classes birthmark";
+    }
+}
\ No newline at end of file
index a274fdb..5b5da29 100644 (file)
@@ -1,23 +1,18 @@
 package jp.sourceforge.stigmata.birthmarks.uc;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
 import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;
 import jp.sourceforge.stigmata.birthmarks.comparators.LogicalAndBirthmarkComparator;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class UsedClassesBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
+public class UsedClassesBirthmarkService implements BirthmarkService{
     private BirthmarkComparator comparator = new LogicalAndBirthmarkComparator(this);
     private BirthmarkExtractor extractor = new UsedClassesBirthmarkExtractor(this);
 
@@ -27,8 +22,8 @@ public class UsedClassesBirthmarkService extends AbstractBirthmarkService implem
     }
 
     @Override
-    public String getDefaultDescription(){
-        return "Set of used classes in target class.";
+    public String getDescription(){
+        return "Used classes birthmark";
     }
 
     @Override
@@ -50,4 +45,9 @@ public class UsedClassesBirthmarkService extends AbstractBirthmarkService implem
     public boolean isUserDefined(){
         return false;
     }
+
+    @Override
+    public BirthmarkPreprocessor getPreprocessor(){
+        return null;
+    }
 }
index e49292c..8958ccb 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.Stigmata;
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.StigmataCommand;
@@ -13,7 +9,6 @@ import jp.sourceforge.stigmata.hook.StigmataHookManager;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public abstract class AbstractStigmataCommand implements StigmataCommand{
     /**
index 50f0cf3..1d2ef92 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.util.Iterator;
 
@@ -17,12 +13,11 @@ import jp.sourceforge.stigmata.event.BirthmarkEngineAdapter;
 import jp.sourceforge.stigmata.event.BirthmarkEngineEvent;
 import jp.sourceforge.stigmata.event.WarningMessages;
 import jp.sourceforge.stigmata.printer.ComparisonResultSetPrinter;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class CompareCommand extends AbstractStigmataCommand{
     @Override
@@ -56,7 +51,7 @@ public class CompareCommand extends AbstractStigmataCommand{
                 resultset = engine.filter(resultset);
             }
 
-            ResultPrinterSpi spi = stigmata.getPrinterManager().getService(context.getFormat());
+            ResultPrinterService spi = stigmata.getPrinterManager().getService(context.getFormat());
             ComparisonResultSetPrinter formatter = spi.getComparisonResultSetPrinter();
             formatter.printResult(new PrintWriter(System.out), resultset);
         }catch(Exception e){
index b3d0ec2..0f16268 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -15,7 +11,6 @@ import jp.sourceforge.stigmata.utils.ConfigFileExporter;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class ExportConfigCommand extends AbstractStigmataCommand{
 
index 448886c..ac72845 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.util.Iterator;
 
@@ -16,12 +12,11 @@ import jp.sourceforge.stigmata.event.BirthmarkEngineAdapter;
 import jp.sourceforge.stigmata.event.BirthmarkEngineEvent;
 import jp.sourceforge.stigmata.event.WarningMessages;
 import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class ExtractCommand extends AbstractStigmataCommand{
     @Override
@@ -51,7 +46,7 @@ public class ExtractCommand extends AbstractStigmataCommand{
             });
             ExtractionResultSet ers = engine.extract(args, context);
 
-            ResultPrinterSpi spi = stigmata.getPrinterManager().getService(context.getFormat());
+            ResultPrinterService spi = stigmata.getPrinterManager().getService(context.getFormat());
             ExtractionResultSetPrinter formatter = spi.getExtractionResultSetPrinter();
             formatter.printResult(new PrintWriter(System.out), ers);
         }catch(Exception ex){
index d5ace30..a492521 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.Stigmata;
@@ -14,7 +10,6 @@ import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class GuiCommand extends AbstractStigmataCommand{
     @Override
index 70019ae..2dcc2fd 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.util.ResourceBundle;
 
 import jp.sourceforge.stigmata.BirthmarkContext;
@@ -11,7 +7,7 @@ import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.ComparisonPairFilterSet;
 import jp.sourceforge.stigmata.Stigmata;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 import jp.sourceforge.talisman.xmlcli.ResourceHelpFormatter;
 
 import org.apache.commons.cli.HelpFormatter;
@@ -20,7 +16,6 @@ import org.apache.commons.cli.Options;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class HelpCommand extends AbstractStigmataCommand{
     private Options options;
@@ -50,10 +45,10 @@ public class HelpCommand extends AbstractStigmataCommand{
         );
         System.out.println();
         System.out.println(helpResource.getString("cli.interface.birthmarks"));
-        for(BirthmarkSpi service: env.getServices()){
+        for(BirthmarkService service: env.getServices()){
             if(!service.isExperimental()){
                 System.out.printf("    %-5s (%s): %s%n", service.getType(),
-                        service.getDisplayType(), service.getDescription());
+                        service.getType(), service.getDescription());
             }
         }
         System.out.println();
index c3c4413..a21f5e9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -19,7 +15,6 @@ import jp.sourceforge.stigmata.utils.Utility;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class InstallCommand extends AbstractStigmataCommand{
     @Override
index 802794b..17ba7e6 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -15,7 +11,6 @@ import jp.sourceforge.stigmata.Stigmata;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class LicenseCommand extends AbstractStigmataCommand{
     @Override
index 6959ec1..7a20fca 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -11,13 +7,12 @@ import java.io.PrintWriter;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.Stigmata;
 import jp.sourceforge.stigmata.printer.BirthmarkServicePrinter;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class ListBirthmarksCommand extends AbstractStigmataCommand{
     @Override
@@ -27,8 +22,8 @@ public class ListBirthmarksCommand extends AbstractStigmataCommand{
 
     @Override
     public void perform(Stigmata stigmata, BirthmarkContext context, String[] args){
-        BirthmarkSpi[] spis = context.getEnvironment().findServices();
-        ResultPrinterSpi spi = stigmata.getPrinterManager().getService(context.getFormat());
+        BirthmarkService[] spis = context.getEnvironment().findServices();
+        ResultPrinterService spi = stigmata.getPrinterManager().getService(context.getFormat());
         BirthmarkServicePrinter formatter = spi.getBirthmarkServicePrinter();
 
         try{
index 63c6b61..371cee9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.util.HashMap;
 import java.util.Map;
 
@@ -12,7 +8,6 @@ import jp.sourceforge.stigmata.StigmataCommand;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class StigmataCommandFactory{
     private static final StigmataCommandFactory factory = new StigmataCommandFactory();
index d5fadf2..c6e35e6 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -16,14 +12,12 @@ import java.util.regex.Pattern;
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.Stigmata;
-import jp.sourceforge.stigmata.birthmarks.BirthmarkService;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 import jp.sourceforge.stigmata.utils.ConfigFileExporter;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 @Deprecated
 public class UninstallCommand extends AbstractStigmataCommand{
@@ -45,7 +39,7 @@ public class UninstallCommand extends AbstractStigmataCommand{
         boolean removeServiceInConfigFile = false;
 
         for(int i = 0; i < args.length; i++){
-            BirthmarkSpi service = env.getService(args[i]);
+            BirthmarkService service = env.getService(args[i]);
             if(service instanceof BirthmarkService){
                 env.removeService(args[i]);
                 removeServiceInConfigFile = true;
@@ -72,7 +66,7 @@ public class UninstallCommand extends AbstractStigmataCommand{
         }
     }
 
-    private String getPluginFileNameOfService(BirthmarkContext context, BirthmarkSpi service){
+    private String getPluginFileNameOfService(BirthmarkContext context, BirthmarkService service){
         Class<?> serviceClass = service.getClass();
         URL location = serviceClass.getResource("/" + serviceClass.getName().replace('.', '/') + ".class");
 
index d57afe3..60f341e 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.command;
 
-/*
- * $Id$
- */
-
 import java.util.ResourceBundle;
 
 import jp.sourceforge.stigmata.BirthmarkContext;
@@ -12,7 +8,6 @@ import jp.sourceforge.stigmata.Stigmata;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class VersionCommand extends AbstractStigmataCommand{
     @Override
index 4a70837..35a7b25 100644 (file)
@@ -1,12 +1,7 @@
 package jp.sourceforge.stigmata.event;
 
-/*
- * $Id$
- */
-
 /**
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkEngineAdapter implements BirthmarkEngineListener{
 
index ccb1536..45533d3 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata.event;
 
-/*
- * $Id$
- */
-
 import java.util.EventObject;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkEngineEvent extends EventObject{
     private static final long serialVersionUID = -1260793588721638917L;
index 1649e32..5cbfe25 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata.event;
 
-/*
- * $Id$
- */
-
 import java.util.EventListener;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface BirthmarkEngineListener extends EventListener{
     public void operationStart(BirthmarkEngineEvent e);
index d2b2e04..4021a8d 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata.event;
 
-/*
- * $Id$
- */
-
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public enum OperationType{
     CONFIGURATION,
index 4366af5..69219b7 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.event;
 
-/*
- * $Id$
- */
-
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -11,7 +7,6 @@ import java.util.Map;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class WarningMessages{
     private OperationType type;
index 4c3c2e8..ab6b045 100644 (file)
@@ -1,27 +1,22 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class AbstractComparisonPairFilter implements ComparisonPairFilter{
-    private ComparisonPairFilterSpi service;
+    private ComparisonPairFilterService service;
     private Criterion criterion = Criterion.EQUALS_AS;
 
-    public AbstractComparisonPairFilter(ComparisonPairFilterSpi service){
+    public AbstractComparisonPairFilter(ComparisonPairFilterService service){
         this.service = service;
     }
 
     @Override
-    public ComparisonPairFilterSpi getService(){
+    public ComparisonPairFilterService getService(){
         return service;
     }
 
diff --git a/src/main/java/jp/sourceforge/stigmata/filter/AbstractComparisonPairFilterService.java b/src/main/java/jp/sourceforge/stigmata/filter/AbstractComparisonPairFilterService.java
deleted file mode 100644 (file)
index fc7797b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-package jp.sourceforge.stigmata.filter;
-
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
-import jp.sourceforge.stigmata.spi.AbstractServiceProvider;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
-import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
-
-/**
- * 
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-abstract class AbstractComparisonPairFilterService extends AbstractServiceProvider implements ComparisonPairFilterSpi{
-    @Override
-    public String getDescription(Locale locale){
-        return LocalizedDescriptionManager.getInstance().getDescription(
-                locale, getFilterName(), LocalizedDescriptionManager.ServiceCategory.filter
-            );
-    }
-
-    @Override
-    public String getDisplayFilterName(){
-        return getDisplayFilterName(Locale.getDefault());
-    }
-
-    @Override
-    public String getDisplayFilterName(Locale locale){
-        return LocalizedDescriptionManager.getInstance().getDisplayType(
-                locale, getFilterName(), LocalizedDescriptionManager.ServiceCategory.filter
-            );
-    }
-}
index b46a0bc..c7a22f2 100644 (file)
@@ -1,19 +1,14 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
 import jp.sourceforge.stigmata.ComparisonPair;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkElementCountComparisonPairFilter extends AbstractComparisonPairFilter{
     private static final List<Criterion> CRITERIA = new ArrayList<Criterion>();
@@ -31,7 +26,7 @@ public class BirthmarkElementCountComparisonPairFilter extends AbstractCompariso
         CRITERIA.add(Criterion.NOT_EQUALS_AS);
     }
 
-    public BirthmarkElementCountComparisonPairFilter(ComparisonPairFilterSpi service){
+    public BirthmarkElementCountComparisonPairFilter(ComparisonPairFilterService service){
         super(service);
     }
 
index 9f904b0..7897f1c 100644 (file)
@@ -1,17 +1,13 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class BirthmarkElementCountComparisonPairFilterService extends AbstractComparisonPairFilterService{
+public class BirthmarkElementCountComparisonPairFilterService implements ComparisonPairFilterService{
 
     @Override
     public ComparisonPairFilter getFilter(){
@@ -19,12 +15,12 @@ public class BirthmarkElementCountComparisonPairFilterService extends AbstractCo
     }
 
     @Override
-    public String getFilterClassName(){
-        return BirthmarkElementCountComparisonPairFilter.class.getName();
+    public String getFilterName(){
+        return "elementcount";
     }
 
     @Override
-    public String getFilterName(){
-        return "elementcount";
+    public String getDescription(){
+        return "Element count Filter";
     }
 }
index af73279..263a0b9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -14,24 +10,23 @@ import java.util.Map;
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.ComparisonPairFilterSet;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 import org.apache.commons.beanutils.BeanUtils;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ComparisonPairFilterManager{
-    private Map<String, ComparisonPairFilterSpi> services = new HashMap<String, ComparisonPairFilterSpi>();
+    private Map<String, ComparisonPairFilterService> services = new HashMap<String, ComparisonPairFilterService>();
     private Map<String, ComparisonPairFilterSet> filters = new HashMap<String, ComparisonPairFilterSet>();
     private ComparisonPairFilterManager parent;
 
     public ComparisonPairFilterManager(BirthmarkEnvironment env, ComparisonPairFilterManager parent){
         this.parent = parent;
-        for(Iterator<ComparisonPairFilterSpi> i = env.lookupProviders(ComparisonPairFilterSpi.class); i.hasNext(); ){
-            ComparisonPairFilterSpi service = i.next();
+        for(Iterator<ComparisonPairFilterService> i = env.lookupProviders(ComparisonPairFilterService.class); i.hasNext(); ){
+            ComparisonPairFilterService service = i.next();
             if(getService(service.getFilterName()) != null){
                 services.put(service.getFilterName(), service);
             }
@@ -39,8 +34,8 @@ public class ComparisonPairFilterManager{
     }
 
     public ComparisonPairFilterManager(BirthmarkEnvironment env){
-        for(Iterator<ComparisonPairFilterSpi> i = env.lookupProviders(ComparisonPairFilterSpi.class); i.hasNext(); ){
-            ComparisonPairFilterSpi service = i.next();
+        for(Iterator<ComparisonPairFilterService> i = env.lookupProviders(ComparisonPairFilterService.class); i.hasNext(); ){
+            ComparisonPairFilterService service = i.next();
             services.put(service.getFilterName(), service);
         }
     }
@@ -127,14 +122,14 @@ public class ComparisonPairFilterManager{
         return null;
     }
 
-    public ComparisonPairFilterSpi removeService(String name){
+    public ComparisonPairFilterService removeService(String name){
         if(parent != null && parent.hasService(name)){
             parent.removeService(name);
         }
         return services.remove(name);
     }
 
-    public void addService(ComparisonPairFilterSpi service){
+    public void addService(ComparisonPairFilterService service){
         if(parent == null || parent.getService(service.getFilterName()) == null){
             services.put(service.getFilterName(), service);
         }
@@ -144,8 +139,8 @@ public class ComparisonPairFilterManager{
         return (parent != null && parent.hasService(name)) || services.get(name) != null;
     }
 
-    public ComparisonPairFilterSpi getService(String name){
-        ComparisonPairFilterSpi service = null;
+    public ComparisonPairFilterService getService(String name){
+        ComparisonPairFilterService service = null;
         if(parent != null){
             service = parent.getService(name);
         }
index 2a89306..e4267f0 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public enum Criterion{
     LESS_THAN,
index 151e6d5..8940589 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 /**
  * This enum represents filter target.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public enum FilterTarget{
     TARGET_1, TARGET_2, BOTH_TARGETS, ONE_OF_TARGETS,
index 9fce3fc..a4dab82 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -19,7 +15,6 @@ import jp.sourceforge.stigmata.ComparisonResultSet;
  * Filtering {@link ComparisonResultSet <code>ComparisonResultSet</code>}.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class FilteredComparisonResultSet implements ComparisonResultSet{
     private ComparisonResultSet resultset;
index 122c107..5729992 100644 (file)
@@ -1,19 +1,14 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
 import jp.sourceforge.stigmata.ComparisonPair;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class SimilarityComparisonPairFilter extends AbstractComparisonPairFilter{
     private static final double EQUALS_THRESHOLD = 5E-5;
@@ -30,7 +25,7 @@ public class SimilarityComparisonPairFilter extends AbstractComparisonPairFilter
 
     private double threshold;
 
-    public SimilarityComparisonPairFilter(ComparisonPairFilterSpi service){
+    public SimilarityComparisonPairFilter(ComparisonPairFilterService service){
         super(service);
         setThreshold(0.8d);
     }
index 8fff8b4..8700d95 100644 (file)
@@ -1,29 +1,25 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class SimilarityComparisonPairFilterService extends AbstractComparisonPairFilterService{
+public class SimilarityComparisonPairFilterService implements ComparisonPairFilterService{
     @Override
     public ComparisonPairFilter getFilter(){
         return new SimilarityComparisonPairFilter(this);
     }
 
     @Override
-    public String getFilterClassName(){
-        return SimilarityComparisonPairFilter.class.getName();
+    public String getFilterName(){
+        return "similarity";
     }
 
     @Override
-    public String getFilterName(){
-        return "similarity";
+    public String getDescription(){
+        return "Filtering all comparison pair by its similarity";
     }
 }
index db443fb..293c738 100644 (file)
@@ -1,19 +1,14 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
 import jp.sourceforge.stigmata.ComparisonPair;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class TargetNameComparisonPairFilter extends AbstractComparisonPairFilter{
     private static final List<Criterion> CRITERIA = new ArrayList<Criterion>();
@@ -31,7 +26,7 @@ public class TargetNameComparisonPairFilter extends AbstractComparisonPairFilter
     private FilterTarget target = FilterTarget.BOTH_TARGETS;
     private String value;
 
-    public TargetNameComparisonPairFilter(ComparisonPairFilterSpi service){
+    public TargetNameComparisonPairFilter(ComparisonPairFilterService service){
         super(service);
     }
 
index 8bb0503..92442bf 100644 (file)
@@ -1,17 +1,13 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class TargetNameComparisonPairFilterService extends AbstractComparisonPairFilterService{
+public class TargetNameComparisonPairFilterService implements ComparisonPairFilterService{
 
     @Override
     public ComparisonPairFilter getFilter(){
@@ -19,12 +15,12 @@ public class TargetNameComparisonPairFilterService extends AbstractComparisonPai
     }
 
     @Override
-    public String getFilterClassName(){
-        return TargetNameComparisonPairFilter.class.getName();
+    public String getFilterName(){
+        return "name";
     }
 
     @Override
-    public String getFilterName(){
-        return "name";
+    public String getDescription(){
+        return "Filtering by Target Name";
     }
 }
index b8157b9..a62a3d5 100644 (file)
@@ -1,19 +1,14 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
 import jp.sourceforge.stigmata.ComparisonPair;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class TotalElementCountComparisonPairFilter extends AbstractComparisonPairFilter{
     private static final List<Criterion> CRITERIA = new ArrayList<Criterion>();
@@ -31,7 +26,7 @@ public class TotalElementCountComparisonPairFilter extends AbstractComparisonPai
     private int threshold = 0;
     private FilterTarget target;
 
-    public TotalElementCountComparisonPairFilter(ComparisonPairFilterSpi service){
+    public TotalElementCountComparisonPairFilter(ComparisonPairFilterService service){
         super(service);
     }
 
index 1c33df4..59d79ba 100644 (file)
@@ -1,17 +1,13 @@
 package jp.sourceforge.stigmata.filter;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class TotalElementCountComparisonPairFilterService extends AbstractComparisonPairFilterService{
+public class TotalElementCountComparisonPairFilterService implements ComparisonPairFilterService{
 
     @Override
     public ComparisonPairFilter getFilter(){
@@ -19,12 +15,12 @@ public class TotalElementCountComparisonPairFilterService extends AbstractCompar
     }
 
     @Override
-    public String getFilterClassName(){
-        return TotalElementCountComparisonPairFilter.class.getName();
+    public String getFilterName(){
+        return "totalelementcount";
     }
 
     @Override
-    public String getFilterName(){
-        return "totalelementcount";
+    public String getDescription(){
+        return "Filtering Element Count";
     }
 }
index 6f36d0b..4b4aa28 100644 (file)
@@ -1,18 +1,13 @@
 package jp.sourceforge.stigmata.hook;
 
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.spi.StigmataHookSpi;
+import jp.sourceforge.stigmata.spi.StigmataHookService;
 
 /**
  * 
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
-public abstract class AbstractStigmataHookService implements StigmataHookSpi{
+public abstract class AbstractStigmataHookService implements StigmataHookService{
     @Override
     public StigmataRuntimeHook afterComparison(){
         return null;
index f299685..e1d57b0 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.hook;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -13,7 +9,6 @@ import jp.sourceforge.stigmata.BirthmarkEnvironment;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class MultipleStigmataHook implements StigmataHook, StigmataRuntimeHook{
     private List<StigmataHook> hooks = new ArrayList<StigmataHook>();
index 04629f7..22cbc2f 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata.hook;
 
-/*
- * $Id$
- */
-
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public enum Phase{
     SETUP,
index 358f39e..c7018a6 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata.hook;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface StigmataHook{
     public void onHook(Phase phase, BirthmarkEnvironment env);
index ceadfd6..63c90f0 100644 (file)
@@ -1,19 +1,14 @@
 package jp.sourceforge.stigmata.hook;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
-import jp.sourceforge.stigmata.spi.StigmataHookSpi;
+import jp.sourceforge.stigmata.spi.StigmataHookService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class StigmataHookManager{
     private static final StigmataHookManager manager = new StigmataHookManager();
@@ -41,8 +36,8 @@ public class StigmataHookManager{
     private MultipleStigmataHook buildHook(Phase phase, BirthmarkEnvironment env){
         MultipleStigmataHook hooks = new MultipleStigmataHook();
 
-        for(Iterator<StigmataHookSpi> i = env.lookupProviders(StigmataHookSpi.class); i.hasNext(); ){
-            StigmataHookSpi service = i.next();
+        for(Iterator<StigmataHookService> i = env.lookupProviders(StigmataHookService.class); i.hasNext(); ){
+            StigmataHookService service = i.next();
 
             switch(phase){
             case SETUP:
index 21d05e9..df80d22 100644 (file)
@@ -5,7 +5,6 @@ import jp.sourceforge.stigmata.BirthmarkContext;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface StigmataRuntimeHook{
     public void onHook(Phase phase, BirthmarkContext context);
index d8f1113..b8fa6aa 100644 (file)
@@ -1,27 +1,22 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class AbstractBirthmarkServicePrinter implements BirthmarkServicePrinter, Printer{
     @Override
-    public abstract void printResult(PrintWriter out, BirthmarkSpi[] spilist);
+    public abstract void printResult(PrintWriter out, BirthmarkService[] spilist);
 
     @Override
-    public String getResult(BirthmarkSpi[] spilist){
+    public String getResult(BirthmarkService[] spilist){
         StringWriter writer = new StringWriter();
         PrintWriter out = new PrintWriter(writer);
 
index bd59dff..891892d 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
@@ -12,7 +8,6 @@ import jp.sourceforge.stigmata.ComparisonPair;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public abstract class AbstractComparisonPairPrinter implements ComparisonPairPrinter, Printer{
 
index 8c3998c..dbdeea8 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
@@ -14,7 +10,6 @@ import jp.sourceforge.stigmata.ComparisonResultSet;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class AbstractComparisonResultSetPrinter implements ComparisonResultSetPrinter, Printer{
     @Override
index 3a6b1ca..7fab2a0 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
@@ -14,7 +10,6 @@ import jp.sourceforge.stigmata.ExtractionResultSet;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class AbstractExtractionResultSetPrinter implements ExtractionResultSetPrinter{
     @Override
index e2b60d0..dc27517 100644 (file)
@@ -1,23 +1,18 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface BirthmarkServicePrinter{
-    public void printResult(PrintWriter out, BirthmarkSpi[] spilist) throws IOException;
+    public void printResult(PrintWriter out, BirthmarkService[] spilist) throws IOException;
 
-    public String getResult(BirthmarkSpi[] spilist);
+    public String getResult(BirthmarkService[] spilist);
 }
index 2e06864..7172c5f 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 
 import jp.sourceforge.stigmata.ComparisonPair;
@@ -11,7 +7,6 @@ import jp.sourceforge.stigmata.ComparisonPair;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface ComparisonPairPrinter{
     public String getResult(ComparisonPair pair);
index dad82bd..5efa93b 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 
 import jp.sourceforge.stigmata.ComparisonResultSet;
@@ -13,7 +9,6 @@ import jp.sourceforge.stigmata.ComparisonResultSet;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface ComparisonResultSetPrinter{
     public void printResult(PrintWriter out, ComparisonResultSet resultset);
index 7126220..3e92b01 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 
 import jp.sourceforge.stigmata.ExtractionResultSet;
@@ -13,7 +9,6 @@ import jp.sourceforge.stigmata.ExtractionResultSet;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface ExtractionResultSetPrinter{
     public void printResult(PrintWriter out, ExtractionResultSet ers);
index 001f3e4..fef34f1 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer;
 
-/*
- * $Id$
- */
-
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -11,21 +7,20 @@ import java.util.ServiceLoader;
 
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.printer.csv.CsvResultPrinterService;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class PrinterManager{
     private static final PrinterManager manager = new PrinterManager();
-    private ServiceLoader<ResultPrinterSpi> serviceLoader;
+    private ServiceLoader<ResultPrinterService> serviceLoader;
 
-    private Map<String, ResultPrinterSpi> formats = new HashMap<String, ResultPrinterSpi>();
+    private Map<String, ResultPrinterService> formats = new HashMap<String, ResultPrinterService>();
 
     private PrinterManager(){
-        serviceLoader = ServiceLoader.load(ResultPrinterSpi.class);
+        serviceLoader = ServiceLoader.load(ResultPrinterService.class);
         load();
     }
 
@@ -37,12 +32,12 @@ public class PrinterManager{
     public static void refresh(BirthmarkEnvironment env){
         PrinterManager instance = getInstance();
         instance.formats.clear();
-        for(Iterator<ResultPrinterSpi> i = env.lookupProviders(ResultPrinterSpi.class); i.hasNext(); ){
+        for(Iterator<ResultPrinterService> i = env.lookupProviders(ResultPrinterService.class); i.hasNext(); ){
             instance.addService(i.next());
         }
     }
 
-    public static ResultPrinterSpi getDefaultFormatService(){
+    public static ResultPrinterService getDefaultFormatService(){
         return new CsvResultPrinterService();
     }
 
@@ -50,19 +45,19 @@ public class PrinterManager{
         return manager;
     }
 
-    public ResultPrinterSpi getService(String format){
+    public ResultPrinterService getService(String format){
         return formats.get(format);
     }
 
     private void load(){
         formats.clear();
-        for(Iterator<ResultPrinterSpi> i = serviceLoader.iterator(); i.hasNext(); ){
-            ResultPrinterSpi spi = i.next();
+        for(Iterator<ResultPrinterService> i = serviceLoader.iterator(); i.hasNext(); ){
+            ResultPrinterService spi = i.next();
             addService(spi);
         }
     }
 
-    private void addService(ResultPrinterSpi service){
+    private void addService(ResultPrinterService service){
         formats.put(service.getFormat(), service);
     }
 }
index 2f44497..1a52636 100644 (file)
@@ -1,29 +1,24 @@
 package jp.sourceforge.stigmata.printer.csv;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 
 import jp.sourceforge.stigmata.printer.AbstractBirthmarkServicePrinter;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkServiceCsvPrinter extends AbstractBirthmarkServicePrinter{
     @Override
-    public void printResult(PrintWriter out, BirthmarkSpi[] spilist){
+    public void printResult(PrintWriter out, BirthmarkService[] spilist){
         printHeader(out);
-        for(BirthmarkSpi spi: spilist){
+        for(BirthmarkService spi: spilist){
             out.print(spi.getType());
             out.print(",");
-            out.print(spi.getDisplayType());
+            out.print(spi.getType());
             out.print(",");
             out.print(spi.getClass().getName());
             out.print(",");
index eda6ade..e2805c6 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer.csv;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -21,7 +17,6 @@ import jp.sourceforge.stigmata.result.CertainPairComparisonResultSet;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ComparisonResultSetCsvPrinter extends AbstractComparisonResultSetPrinter{
     public ComparisonResultSetCsvPrinter(){
index 1bea6bc..fd75d39 100644 (file)
@@ -1,27 +1,18 @@
 package jp.sourceforge.stigmata.printer.csv;
 
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
 import jp.sourceforge.stigmata.printer.BirthmarkServicePrinter;
 import jp.sourceforge.stigmata.printer.ComparisonPairPrinter;
 import jp.sourceforge.stigmata.printer.ComparisonResultSetPrinter;
 import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter;
-import jp.sourceforge.stigmata.spi.AbstractServiceProvider;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
-import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class CsvResultPrinterService extends AbstractServiceProvider implements ResultPrinterSpi{
+public class CsvResultPrinterService implements ResultPrinterService{
     private BirthmarkServiceCsvPrinter serviceList = new BirthmarkServiceCsvPrinter();
     private ExtractionResultSetCsvPrinter list = new ExtractionResultSetCsvPrinter();
     private ComparisonPairCsvPrinter pairPrinter = new ComparisonPairCsvPrinter(list);
@@ -31,10 +22,8 @@ public class CsvResultPrinterService extends AbstractServiceProvider implements
      * returns a localized description of the birthmark this service provides.
      */
     @Override
-    public String getDescription(Locale locale){
-        return LocalizedDescriptionManager.getInstance().getDescription(
-            locale, getFormat(), LocalizedDescriptionManager.ServiceCategory.formatter
-        );
+    public String getDescription(){
+        return "Print Birthmarks in Csv Format";
     }
 
     @Override
index 6178164..4672a28 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer.csv;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.util.Iterator;
 
@@ -19,7 +15,6 @@ import jp.sourceforge.stigmata.printer.AbstractExtractionResultSetPrinter;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ExtractionResultSetCsvPrinter extends AbstractExtractionResultSetPrinter{
     @Override
index ce566c3..12785ef 100644 (file)
@@ -1,35 +1,27 @@
 package jp.sourceforge.stigmata.printer.xml;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 
 import jp.sourceforge.stigmata.printer.AbstractBirthmarkServicePrinter;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkServiceXmlPrinter extends AbstractBirthmarkServicePrinter{
     @Override
-    public void printResult(PrintWriter out, BirthmarkSpi[] spilist){
+    public void printResult(PrintWriter out, BirthmarkService[] spilist){
         out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
         out.println("<birthmark-result-set>");
         out.println("  <birthmark-services>");
-        for(BirthmarkSpi spi: spilist){
+        for(BirthmarkService spi: spilist){
             out.println("    <birthmark-service>");
             out.printf("      <type>%s</type>%n", spi.getType());
-            out.printf("      <display-name>%s</display-name>%n", spi.getDisplayType());
             out.printf("      <description>%s</description>%n", spi.getDescription());
             out.printf("      <class-name>%s</class-name>%n", spi.getClass().getName());
-            out.printf("      <extractor>%s</extractor>%n", spi.getExtractorClassName());
-            out.printf("      <comparator>%s</comparator>%n", spi.getComparatorClassName());
             out.println("    </birthmark-service>");
         }
         out.println("  </birthmark-services>");
index 6480274..7efd7b9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer.xml;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 
 import jp.sourceforge.stigmata.ComparisonPair;
@@ -15,7 +11,6 @@ import jp.sourceforge.stigmata.printer.AbstractComparisonResultSetPrinter;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ComparisonResultSetXmlPrinter extends AbstractComparisonResultSetPrinter{
     private ComparisonPairXmlPrinter pairPrinter;
index ef0819c..73b48f1 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.printer.xml;
 
-/*
- * $Id$
- */
-
 import java.io.PrintWriter;
 import java.util.Iterator;
 
@@ -19,7 +15,6 @@ import jp.sourceforge.stigmata.printer.AbstractExtractionResultSetPrinter;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ExtractionResultSetXmlPrinter extends AbstractExtractionResultSetPrinter{
     @Override
index 39692cc..5e29082 100644 (file)
@@ -1,27 +1,18 @@
 package jp.sourceforge.stigmata.printer.xml;
 
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
 import jp.sourceforge.stigmata.printer.BirthmarkServicePrinter;
 import jp.sourceforge.stigmata.printer.ComparisonPairPrinter;
 import jp.sourceforge.stigmata.printer.ComparisonResultSetPrinter;
 import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter;
-import jp.sourceforge.stigmata.spi.AbstractServiceProvider;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
-import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 
 /**
  * 
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public class XmlResultPrinterService extends AbstractServiceProvider implements ResultPrinterSpi{
+public class XmlResultPrinterService implements ResultPrinterService{
     private BirthmarkServiceXmlPrinter serviceList = new BirthmarkServiceXmlPrinter();
     private ExtractionResultSetXmlPrinter list = new ExtractionResultSetXmlPrinter();
     private ComparisonPairXmlPrinter pairPrinter = new ComparisonPairXmlPrinter(list);
@@ -31,10 +22,8 @@ public class XmlResultPrinterService extends AbstractServiceProvider implements
      * returns a localized description of the birthmark this service provides.
      */
     @Override
-    public String getDescription(Locale locale){
-        return LocalizedDescriptionManager.getInstance().getDescription(
-            locale, getFormat(), LocalizedDescriptionManager.ServiceCategory.formatter
-        );
+    public String getDescription(){
+        return "Print Birthmarks in Xml Format";
     }
 
     @Override
old mode 100644 (file)
new mode 100755 (executable)
index 7c85b82..ac6133b
@@ -3,6 +3,10 @@ package jp.sourceforge.stigmata.resolvers;
 import java.io.File;
 import java.util.ServiceLoader;
 
+/**
+ * 
+ * @author Haruaki Tamada
+ */
 public class StigmataHomeManager implements StigmataHomeResolver{
     private String home;
 
index 547b5ab..c0a6d25 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -20,7 +16,6 @@ import jp.sourceforge.stigmata.ExtractionResultSet;
  * Abstract class for ComparisonResultSet.
  *
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public abstract class AbstractComparisonResultSet implements ComparisonResultSet{
     protected ExtractionResultSet extraction;
index ece503b..0732138 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Iterator;
@@ -20,7 +16,6 @@ import jp.sourceforge.stigmata.ExtractionUnit;
  * Abstract class for ExtractionResultSet.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public abstract class AbstractExtractionResultSet implements ExtractionResultSet{
     private BirthmarkContext context;
index d453cb1..2329201 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.net.URL;
 import java.util.Collection;
 import java.util.HashMap;
@@ -24,7 +20,6 @@ import jp.sourceforge.stigmata.result.history.ExtractedBirthmarkServiceManager;
  * user.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class CertainPairComparisonResultSet extends AbstractComparisonResultSet{
     private int compareCount = -1;
index 57d1684..c6d819e 100644 (file)
@@ -1,22 +1,17 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkStoreTarget;
 import jp.sourceforge.stigmata.ExtractionResultSet;
 import jp.sourceforge.stigmata.result.history.ExtractedBirthmarkHistory;
 import jp.sourceforge.stigmata.result.history.MemoryExtractedBirthmarkHistory;
-import jp.sourceforge.stigmata.spi.ExtractedBirthmarkSpi;
+import jp.sourceforge.stigmata.spi.ExtractedBirthmarkService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
-public class MemoryExtractedBirthmarkService implements ExtractedBirthmarkSpi{
+public class MemoryExtractedBirthmarkService implements ExtractedBirthmarkService{
     private MemoryExtractedBirthmarkHistory history = new MemoryExtractedBirthmarkHistory();
 
     @Override
@@ -41,4 +36,14 @@ public class MemoryExtractedBirthmarkService implements ExtractedBirthmarkSpi{
         return BirthmarkStoreTarget.MEMORY;
     }
 
+    @Override
+    public String getType(){
+        return "memory";
+    }
+
+    @Override
+    public String getDescription(){
+        return "Store birthmarks in memory";
+    }
+
 }
index 7c5a96b..bc2012f 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -17,7 +13,6 @@ import jp.sourceforge.stigmata.utils.MultipleIterator;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class MemoryExtractionResultSet extends AbstractExtractionResultSet{
     private List<BirthmarkSet> targetX = new ArrayList<BirthmarkSet>();
index abfbaa3..2b16192 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import javax.sql.DataSource;
 
 import jp.sourceforge.stigmata.BirthmarkContext;
@@ -11,14 +7,13 @@ import jp.sourceforge.stigmata.BirthmarkStoreTarget;
 import jp.sourceforge.stigmata.ExtractionResultSet;
 import jp.sourceforge.stigmata.result.history.ExtractedBirthmarkHistory;
 import jp.sourceforge.stigmata.result.history.RDBExtractedBirthmarkHistory;
-import jp.sourceforge.stigmata.spi.ExtractedBirthmarkSpi;
+import jp.sourceforge.stigmata.spi.ExtractedBirthmarkService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
-public class RDBExtractedBirthmarkService implements ExtractedBirthmarkSpi{
+public class RDBExtractedBirthmarkService implements ExtractedBirthmarkService{
     private DataSource source;
 
     public RDBExtractedBirthmarkService(){
@@ -43,4 +38,14 @@ public class RDBExtractedBirthmarkService implements ExtractedBirthmarkSpi{
     public BirthmarkStoreTarget getTarget(){
         return BirthmarkStoreTarget.RDB;
     }
+
+    @Override
+    public String getType(){
+        return "rdb";
+    }
+
+    @Override
+    public String getDescription(){
+        return "Store birthmarks to Relational Database.";
+    }
 }
index eeecc2d..c5dc9c0 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.sql.ResultSet;
@@ -37,7 +33,6 @@ import org.apache.commons.dbutils.handlers.ScalarHandler;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class RDBExtractionResultSet extends AbstractExtractionResultSet{
     private String id;
@@ -222,11 +217,11 @@ public class RDBExtractionResultSet extends AbstractExtractionResultSet{
 
                     Birthmark birthmark = bs.getBirthmark(type);
                     if(birthmark == null){
-                        birthmark = env.getService(type).buildBirthmark();
+                        birthmark = env.getService(type).getExtractor().createBirthmark();
                         bs.addBirthmark(birthmark);
                     }
                     String element = rs.getString("ELEMENT");
-                    birthmark.addElement(env.getService(type).buildBirthmarkElement(element));
+                    birthmark.addElement(env.getService(type).getExtractor().buildElement(element));
 
                 } catch(MalformedURLException e){
                 }
index dba9948..2b21985 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -22,7 +18,6 @@ import jp.sourceforge.stigmata.ExtractionTarget;
  * Concrete class for ComparisonResultSet. This instance compare class files by round robin.
  *
  * @author  Haruaki TAMADA
- * @version  $Revision$ 
  */
 public class RoundRobinComparisonResultSet extends AbstractComparisonResultSet{
     private int compareCount = -1;
index f45569a..8b96c5c 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
@@ -16,7 +12,6 @@ import jp.sourceforge.stigmata.utils.NullIterator;
 /**
  *
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class SingleExtractionResultSet extends AbstractExtractionResultSet{
     private BirthmarkSet bs;
index cd7adff..b01db0e 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 
 import jp.sourceforge.stigmata.BirthmarkContext;
@@ -12,14 +8,13 @@ import jp.sourceforge.stigmata.BirthmarkStoreTarget;
 import jp.sourceforge.stigmata.ExtractionResultSet;
 import jp.sourceforge.stigmata.result.history.ExtractedBirthmarkHistory;
 import jp.sourceforge.stigmata.result.history.XmlFileExtractedBirthmarkHistory;
-import jp.sourceforge.stigmata.spi.ExtractedBirthmarkSpi;
+import jp.sourceforge.stigmata.spi.ExtractedBirthmarkService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
-public class XmlFileExtractedBirthmarkService implements ExtractedBirthmarkSpi{
+public class XmlFileExtractedBirthmarkService implements ExtractedBirthmarkService{
     private File defaultBaseDirectory;
 
     public XmlFileExtractedBirthmarkService(){
@@ -61,4 +56,14 @@ public class XmlFileExtractedBirthmarkService implements ExtractedBirthmarkSpi{
     public BirthmarkStoreTarget getTarget(){
         return BirthmarkStoreTarget.XMLFILE;
     }
+
+    @Override
+    public String getType(){
+        return "xmlfile";
+    }
+
+    @Override
+    public String getDescription(){
+        return "Store birthmarks into Xml File";
+    }
 }
index 5ceb342..35d7f32 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result;
 
-/*
- * $Id$
- */
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -39,7 +35,7 @@ import jp.sourceforge.stigmata.ExtractionTarget;
 import jp.sourceforge.stigmata.ExtractionUnit;
 import jp.sourceforge.stigmata.Stigmata;
 import jp.sourceforge.stigmata.printer.xml.ExtractionResultSetXmlPrinter;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 import jp.sourceforge.stigmata.ui.swing.ExtensionFilter;
 import jp.sourceforge.stigmata.utils.MultipleIterator;
 
@@ -48,7 +44,6 @@ import jp.sourceforge.stigmata.utils.MultipleIterator;
  * This instance do not use {@link ExtractionTarget <code>ExtractionTarget</code>}.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class XmlFileExtractionResultSet extends AbstractExtractionResultSet{
     private boolean addmode = true;
@@ -217,7 +212,6 @@ public class XmlFileExtractionResultSet extends AbstractExtractionResultSet{
      * Iterator class for reading birthmark xml file by StAX.
      * 
      * @author Haruaki Tamada
-     * @version $Revision$ 
      */
     private static class BirthmarkSetStAXIterator implements Iterator<BirthmarkSet>{
         private XMLEventReader reader = null;
@@ -284,7 +278,7 @@ public class XmlFileExtractionResultSet extends AbstractExtractionResultSet{
             String className = null;
             BirthmarkSet bs = null;
             Birthmark birthmark = null;
-            BirthmarkSpi service = null;
+            BirthmarkService service = null;
                 
             while(reader.hasNext()){
                 // XMLEvent event = reader.peek();
@@ -321,7 +315,7 @@ public class XmlFileExtractionResultSet extends AbstractExtractionResultSet{
                     }
                     else if(part.equals("element")){
                         if(service != null){
-                            BirthmarkElement be = service.buildBirthmarkElement(reader.getElementText());
+                            BirthmarkElement be = service.getExtractor().buildElement(reader.getElementText());
                             birthmark.addElement(be);
                         }
                     }
@@ -329,7 +323,7 @@ public class XmlFileExtractionResultSet extends AbstractExtractionResultSet{
                         String type = se.getAttributeByName(new QName("type")).getValue();
                         service = env.getService(type);
                         if(service != null){
-                            birthmark = service.buildBirthmark();
+                            birthmark = service.getExtractor().createBirthmark();
                             bs.addBirthmark(birthmark);
                         }
                         else{
@@ -354,7 +348,6 @@ public class XmlFileExtractionResultSet extends AbstractExtractionResultSet{
      * This class represents a xml file about XmlFileExtractionResultSet.
      * 
      * @author Haruaki Tamada
-     * @version $Revision$ 
      */
     private static class XmlFile{
         private ExtractionResultSetXmlPrinter formatter;
index 29a953d..8aee2b3 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result.history;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 
 import jp.sourceforge.stigmata.ExtractionResultSet;
@@ -12,7 +8,6 @@ import jp.sourceforge.stigmata.ExtractionResultSet;
  * This interface indicates extracted history management.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface ExtractedBirthmarkHistory extends Iterable<String>{
     /**
index 346ec80..694f1da 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result.history;
 
-/*
- * $Id$
- */
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
@@ -18,16 +14,15 @@ import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.BirthmarkStoreTarget;
 import jp.sourceforge.stigmata.ExtractionResultSet;
-import jp.sourceforge.stigmata.spi.ExtractedBirthmarkSpi;
+import jp.sourceforge.stigmata.spi.ExtractedBirthmarkService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class ExtractedBirthmarkServiceManager{
     private ExtractedBirthmarkServiceManager parent;
-    private Map<BirthmarkStoreTarget, ExtractedBirthmarkSpi> targets = new HashMap<BirthmarkStoreTarget, ExtractedBirthmarkSpi>();
+    private Map<BirthmarkStoreTarget, ExtractedBirthmarkService> targets = new HashMap<BirthmarkStoreTarget, ExtractedBirthmarkService>();
     private BirthmarkEnvironment env;
 
     public ExtractedBirthmarkServiceManager(BirthmarkEnvironment env){
@@ -53,7 +48,7 @@ public class ExtractedBirthmarkServiceManager{
             bst = BirthmarkStoreTarget.XMLFILE;
         }
 
-        ExtractedBirthmarkSpi service = findService(bst);
+        ExtractedBirthmarkService service = findService(bst);
 
         return service.createResultSet(context);
     }
@@ -69,7 +64,7 @@ public class ExtractedBirthmarkServiceManager{
             BirthmarkStoreTarget bst = BirthmarkStoreTarget.valueOf(type);
             String path = id.substring(index + 1);
 
-            ExtractedBirthmarkSpi service = findService(bst);
+            ExtractedBirthmarkService service = findService(bst);
             if(service != null){
                 history = service.getHistory(path);
             }
@@ -95,8 +90,8 @@ public class ExtractedBirthmarkServiceManager{
         return values.toArray(new String[values.size()]);
     }
 
-    private synchronized ExtractedBirthmarkSpi findService(BirthmarkStoreTarget bst){
-        ExtractedBirthmarkSpi spi = targets.get(bst);
+    private synchronized ExtractedBirthmarkService findService(BirthmarkStoreTarget bst){
+        ExtractedBirthmarkService spi = targets.get(bst);
         if(spi == null){
             refreshService();
         }
@@ -106,8 +101,8 @@ public class ExtractedBirthmarkServiceManager{
     }
 
     private synchronized void refreshService(){
-        for(Iterator<ExtractedBirthmarkSpi> i = env.lookupProviders(ExtractedBirthmarkSpi.class); i.hasNext(); ){
-            ExtractedBirthmarkSpi service = i.next();
+        for(Iterator<ExtractedBirthmarkService> i = env.lookupProviders(ExtractedBirthmarkService.class); i.hasNext(); ){
+            ExtractedBirthmarkService service = i.next();
             targets.put(service.getTarget(), service);
         }
     }
index b6e4f8c..72e4302 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result.history;
 
-/*
- * $Id$
- */
-
 import java.sql.SQLException;
 import java.util.Iterator;
 
@@ -19,7 +15,6 @@ import org.apache.commons.dbutils.QueryRunner;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class RDBExtractedBirthmarkHistory implements ExtractedBirthmarkHistory{
     private DataSource source;
index 8d22b30..7903d04 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.result.history;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -17,7 +13,6 @@ import jp.sourceforge.stigmata.utils.Utility;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class XmlFileExtractedBirthmarkHistory implements ExtractedBirthmarkHistory{
     private File parent;
diff --git a/src/main/java/jp/sourceforge/stigmata/spi/AbstractServiceProvider.java b/src/main/java/jp/sourceforge/stigmata/spi/AbstractServiceProvider.java
deleted file mode 100644 (file)
index bac2f09..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-package jp.sourceforge.stigmata.spi;
-
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
-/**
- * Base abstract class for birthmark SPI.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public abstract class AbstractServiceProvider implements ServiceProvider{
-
-    /**
-     * returning implementation vendor name of this SPI.
-     */
-    @Override
-    public String getDescription(){
-        return getDescription(Locale.getDefault());
-    }
-
-    /**
-     * returning implementation vendor name of this SPI.
-     */
-    @Override
-    public String getVendorName(){
-        return getClass().getPackage().getImplementationVendor();
-    }
-
-    /**
-     * returning version of this SPI.
-     */
-    @Override
-    public String getVersion(){
-        return getClass().getPackage().getImplementationVersion();
-    }
-
-}
@@ -1,42 +1,26 @@
 package jp.sourceforge.stigmata.spi;
 
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
 import jp.sourceforge.stigmata.BirthmarkComparator;
 
 /**
  * Service provider interface for comparing birthmarks.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public interface BirthmarkComparatorSpi extends ServiceProvider{
+public interface BirthmarkComparatorService{
     /**
      * returns a type of the birthmark this service provides.
      */
     public String getType();
 
     /**
-     * returns a localized description of the birthmark this service provides.
-     */
-    @Override
-    public String getDescription(Locale locale);
-
-    /**
      * returns a localized description of the birthmark in default locale.
      */
-    @Override
     public String getDescription();
 
-    public String getComparatorClassName();
-
     /**
      * returns a extractor for the birthmark of this service.
      */
-    public BirthmarkComparator getComparator(BirthmarkSpi service);
+    public BirthmarkComparator getComparator(BirthmarkService service);
 }
 
@@ -1,42 +1,26 @@
 package jp.sourceforge.stigmata.spi;
 
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
 import jp.sourceforge.stigmata.BirthmarkExtractor;
 
 /**
  * Service provider interface for extracting birhtmark from given class files.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public interface BirthmarkExtractorSpi extends ServiceProvider{
+public interface BirthmarkExtractorService{
     /**
      * returns a type of the birthmark this service provides.
      */
     public String getType();
 
     /**
-     * returns a localized description of the birthmark this service provides.
-     */
-    @Override
-    public String getDescription(Locale locale);
-
-    /**
      * returns a localized description of the birthmark in default locale.
      */
-    @Override
     public String getDescription();
 
-    public String getExtractorClassName();
-
     /**
      * returns a extractor for the birthmark of this service.
      */
-    public BirthmarkExtractor getExtractor(BirthmarkSpi service);
+    public BirthmarkExtractor getExtractor(BirthmarkService service);
 }
 
diff --git a/src/main/java/jp/sourceforge/stigmata/spi/BirthmarkService.java b/src/main/java/jp/sourceforge/stigmata/spi/BirthmarkService.java
new file mode 100644 (file)
index 0000000..72380ec
--- /dev/null
@@ -0,0 +1,39 @@
+package jp.sourceforge.stigmata.spi;
+
+import jp.sourceforge.stigmata.BirthmarkComparator;
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;
+
+/**
+ * Birthmark service provider interface.
+ *
+ * @author Haruaki TAMADA
+ */
+public interface BirthmarkService{
+    /**
+     * returns a type of the birthmark this service provides.
+     */
+    public String getType();
+
+    /**
+     * returns a description of the birthmark this service provides.
+     */
+    public String getDescription();
+
+    public BirthmarkPreprocessor getPreprocessor();
+
+    /**
+     * returns a extractor for the birthmark of this service.
+     */
+    public BirthmarkExtractor getExtractor();
+
+    /**
+     * returns a comparator for the birthmark of this service.
+     */
+    public BirthmarkComparator getComparator();
+
+    public boolean isExperimental();
+
+    public boolean isUserDefined();
+}
+
diff --git a/src/main/java/jp/sourceforge/stigmata/spi/BirthmarkSpi.java b/src/main/java/jp/sourceforge/stigmata/spi/BirthmarkSpi.java
deleted file mode 100644 (file)
index 1652b4d..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-package jp.sourceforge.stigmata.spi;
-
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
-import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkComparator;
-import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.BirthmarkExtractor;
-import jp.sourceforge.stigmata.BirthmarkPreprocessor;
-
-/**
- * Birthmark service provider interface.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public interface BirthmarkSpi extends ServiceProvider{
-    /**
-     * returns a type of the birthmark this service provides.
-     */
-    public String getType();
-
-    /**
-     * returns a type of the birthmark for display.
-     */
-    public String getDisplayType(Locale locale);
-
-    /**
-     * returns a type of the birthmark for display in default locale.
-     */
-    public String getDisplayType();
-
-    /**
-     * returns a description of the birthmark this service provides.
-     */
-    public String getDefaultDescription();
-
-    /**
-     * returns a localized description of the birthmark this service provides.
-     */
-    @Override
-    public String getDescription(Locale locale);
-
-    /**
-     * returns a localized description of the birthmark in default locale.
-     */
-    @Override
-    public String getDescription();
-
-    public String getExtractorClassName();
-
-    public Birthmark buildBirthmark();
-
-    public BirthmarkElement buildBirthmarkElement(String elementValue);
-
-    public BirthmarkPreprocessor getPreprocessor();
-
-    public String getPreprocessorClassName();
-
-    /**
-     * returns a extractor for the birthmark of this service.
-     */
-    public BirthmarkExtractor getExtractor();
-
-    public String getComparatorClassName();
-
-    /**
-     * returns a comparator for the birthmark of this service.
-     */
-    public BirthmarkComparator getComparator();
-
-    public boolean isExperimental();
-
-    public boolean isUserDefined();
-
-}
-
@@ -1,27 +1,16 @@
 package jp.sourceforge.stigmata.spi;
 
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 
 /**
  * Service provider interface for filtering comparison pair.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public interface ComparisonPairFilterSpi extends ServiceProvider{
-    public String getDisplayFilterName(Locale locale);
-
-    public String getDisplayFilterName();
-
+public interface ComparisonPairFilterService{
     public String getFilterName();
 
-    public String getFilterClassName();
+    public String getDescription();
 
     public ComparisonPairFilter getFilter();
 }
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.spi;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkStoreTarget;
 import jp.sourceforge.stigmata.ExtractionResultSet;
@@ -13,9 +9,8 @@ import jp.sourceforge.stigmata.result.history.ExtractedBirthmarkHistory;
  * This service provider interface manages extracted birthmark histories.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
-public interface ExtractedBirthmarkSpi{
+public interface ExtractedBirthmarkService{
     /**
      * finds and returns history from given parameter.
      * @param parameter search base.
@@ -28,4 +23,8 @@ public interface ExtractedBirthmarkSpi{
     public ExtractionResultSet createResultSet(BirthmarkContext context);
 
     public BirthmarkStoreTarget getTarget();
+
+    public String getType();
+
+    public String getDescription();
 }
diff --git a/src/main/java/jp/sourceforge/stigmata/spi/ReflectedBirthmarkService.java b/src/main/java/jp/sourceforge/stigmata/spi/ReflectedBirthmarkService.java
new file mode 100644 (file)
index 0000000..ef87a87
--- /dev/null
@@ -0,0 +1,116 @@
+package jp.sourceforge.stigmata.spi;\r
+\r
+import java.io.Serializable;\r
+import java.lang.reflect.Constructor;\r
+\r
+import jp.sourceforge.stigmata.BirthmarkComparator;\r
+import jp.sourceforge.stigmata.BirthmarkExtractor;\r
+import jp.sourceforge.stigmata.BirthmarkPreprocessor;\r
+\r
+public class ReflectedBirthmarkService implements BirthmarkService, Serializable{\r
+    private static final long serialVersionUID = 4090172591560046236L;\r
+\r
+    private String type;\r
+    private String description;\r
+    private String extractorClass;\r
+    private String comparatorClass;\r
+    private String preprocessorClass;\r
+\r
+    private transient BirthmarkExtractor extractor;\r
+    private transient BirthmarkComparator comparator;\r
+    private transient BirthmarkPreprocessor preprocessor;\r
+\r
+    public ReflectedBirthmarkService(String type, String description,\r
+            String extractorClass, String comparatorClass){\r
+        this(type, description, extractorClass, comparatorClass, null);\r
+    }\r
+\r
+    public String toString(){\r
+        return String.format("%s, extractor=%s, comparator=%s", type, extractorClass, comparatorClass);\r
+    }\r
+\r
+    /**\r
+     * \r
+     * @param type\r
+     * @param description\r
+     * @param extractorClass\r
+     * @param comparatorClass\r
+     * @param preprocessorClass\r
+     * @throws NullPointerException one of type, extractorClass, and comparatorClass is null. \r
+     */\r
+    public ReflectedBirthmarkService(String type, String description,\r
+            String extractorClass, String comparatorClass, String preprocessorClass){\r
+        if(type == null || extractorClass == null || comparatorClass == null){\r
+            throw new NullPointerException();\r
+        }\r
+        this.type = type;\r
+        this.description = description;\r
+        this.extractorClass = extractorClass;\r
+        this.comparatorClass = comparatorClass;\r
+        this.preprocessorClass = preprocessorClass;\r
+    }\r
+\r
+    @Override\r
+    public String getType(){\r
+        return type;\r
+    }\r
+\r
+    @Override\r
+    public String getDescription(){\r
+        return description;\r
+    }\r
+\r
+    @Override\r
+    public synchronized BirthmarkPreprocessor getPreprocessor(){\r
+        if(preprocessor == null && preprocessorClass != null){\r
+            preprocessor = instantiateClass(preprocessorClass, BirthmarkPreprocessor.class);\r
+        }\r
+        return preprocessor;\r
+    }\r
+\r
+    private <T> T instantiateClass(String name, Class<T> type){\r
+        try{\r
+            Class<? extends T> targetClass = Class.forName(name).asSubclass(type);\r
+            Constructor<? extends T> constructor = targetClass.getConstructor(BirthmarkService.class);\r
+            return constructor.newInstance(this);\r
+        } catch(Exception e){\r
+            e.printStackTrace();\r
+        }\r
+        return null;\r
+    }\r
+\r
+    public String getExtractorClassName(){\r
+        return extractorClass;\r
+    }\r
+\r
+    @Override\r
+    public BirthmarkExtractor getExtractor(){\r
+        if(extractor == null){\r
+            extractor = instantiateClass(extractorClass, BirthmarkExtractor.class);\r
+        }\r
+        return extractor;\r
+    }\r
+\r
+    public String getComparatorClassName(){\r
+        return comparatorClass;\r
+    }\r
+\r
+    @Override\r
+    public synchronized BirthmarkComparator getComparator(){\r
+        if(comparator == null){\r
+            comparator = instantiateClass(comparatorClass, BirthmarkComparator.class);\r
+        }\r
+        return comparator;\r
+    }\r
+\r
+    @Override\r
+    public boolean isExperimental(){\r
+        return true;\r
+    }\r
+\r
+    @Override\r
+    public boolean isUserDefined(){\r
+        return true;\r
+    }\r
+\r
+}\r
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.spi;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.printer.BirthmarkServicePrinter;
 import jp.sourceforge.stigmata.printer.ComparisonPairPrinter;
 import jp.sourceforge.stigmata.printer.ComparisonResultSetPrinter;
@@ -14,14 +10,15 @@ import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter;
  * result to certain output stream.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
-public interface ResultPrinterSpi extends ServiceProvider{
+public interface ResultPrinterService{
     /**
      * return a format.
      */
     public String getFormat();
 
+    public String getDescription();
+
     public BirthmarkServicePrinter getBirthmarkServicePrinter();
 
     public ComparisonResultSetPrinter getComparisonResultSetPrinter();
diff --git a/src/main/java/jp/sourceforge/stigmata/spi/ServiceProvider.java b/src/main/java/jp/sourceforge/stigmata/spi/ServiceProvider.java
deleted file mode 100644 (file)
index fcb15c2..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package jp.sourceforge.stigmata.spi;
-
-/*
- * $Id$
- */
-
-import java.util.Locale;
-
-/**
- * Base interface for birthmark SPI.
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public interface ServiceProvider{
-    public String getDescription(Locale locale);
-
-    public String getDescription();
-
-    public String getVendorName();
-
-    public String getVersion();
-}
@@ -1,18 +1,17 @@
 package jp.sourceforge.stigmata.spi;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.hook.StigmataHook;
 import jp.sourceforge.stigmata.hook.StigmataRuntimeHook;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
-public interface StigmataHookSpi{
+public interface StigmataHookService{
+    public String getType();
+
+    public String getDescription();
+
     public StigmataHook onSetup();
 
     public StigmataHook onTearDown();
index 7df6c64..16dc54d 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
@@ -32,16 +28,15 @@ import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
 
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
-import jp.sourceforge.stigmata.birthmarks.BirthmarkService;
-import jp.sourceforge.stigmata.spi.BirthmarkComparatorSpi;
-import jp.sourceforge.stigmata.spi.BirthmarkExtractorSpi;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkComparatorService;
+import jp.sourceforge.stigmata.spi.BirthmarkExtractorService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+import jp.sourceforge.stigmata.spi.ReflectedBirthmarkService;
 import jp.sourceforge.talisman.i18n.Messages;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkDefinitionPane extends JPanel{
     private static final long serialVersionUID = 3932637653297802978L;
@@ -52,7 +47,7 @@ public class BirthmarkDefinitionPane extends JPanel{
     private JList serviceList;
     private JButton newService;
     private JButton removeService;
-    private List<BirthmarkSpi> addedService = new ArrayList<BirthmarkSpi>();
+    private List<BirthmarkService> addedService = new ArrayList<BirthmarkService>();
     private List<BirthmarkServiceListener> listeners = new ArrayList<BirthmarkServiceListener>();
 
     public BirthmarkDefinitionPane(StigmataFrame stigmata){
@@ -73,17 +68,14 @@ public class BirthmarkDefinitionPane extends JPanel{
     }
 
     public void reset(){
-        for(BirthmarkSpi service: addedService){
+        for(BirthmarkService service: addedService){
             model.removeElement(service);
         }
     }
 
     public void updateEnvironment(BirthmarkEnvironment environment){
-        for(BirthmarkSpi service: addedService){
+        for(BirthmarkService service: addedService){
             if(environment.getService(service.getType()) == null){
-                if(service instanceof BirthmarkService){
-                    ((BirthmarkService)service).setBirthmarkEnvironment(environment);
-                }
                 environment.addService(service);
             }
         }
@@ -93,7 +85,7 @@ public class BirthmarkDefinitionPane extends JPanel{
         information.initData();
         model.addElement(stigmata.getMessages().get("newservice.definition.label"));
 
-        for(BirthmarkSpi service: stigmata.getEnvironment().findServices()){
+        for(BirthmarkService service: stigmata.getEnvironment().findServices()){
             model.addElement(service);
         }
     }
@@ -151,7 +143,7 @@ public class BirthmarkDefinitionPane extends JPanel{
     private void removeService(){
         int index = serviceList.getSelectedIndex();
         if(index > 0){
-            BirthmarkSpi service = (BirthmarkSpi)model.getElementAt(index);
+            BirthmarkService service = (BirthmarkService)model.getElementAt(index);
             if(service != null && service.isUserDefined()){
                 model.remove(index);
                 for(BirthmarkServiceListener listener: listeners){
@@ -178,7 +170,7 @@ public class BirthmarkDefinitionPane extends JPanel{
     private void listValueChanged(ListSelectionEvent e){
         int index = serviceList.getSelectedIndex();
         if(index > 0){
-            BirthmarkSpi service = (BirthmarkSpi)model.getElementAt(index);
+            BirthmarkService service = (BirthmarkService)model.getElementAt(index);
             if(service != null){
                 information.setService(service);
             }
@@ -197,9 +189,9 @@ public class BirthmarkDefinitionPane extends JPanel{
     private void updateView(){
         int index = serviceList.getSelectedIndex();
         ListModel model = serviceList.getModel();
-        BirthmarkSpi service = null;
+        BirthmarkService service = null;
         if(index > 0){
-            service = (BirthmarkSpi)model.getElementAt(index); 
+            service = (BirthmarkService)model.getElementAt(index); 
         }
         newService.setEnabled(
             (index <= 0 || service.isUserDefined()) && 
@@ -211,7 +203,7 @@ public class BirthmarkDefinitionPane extends JPanel{
     }
 
     private boolean isAvailableServiceName(String name){
-        for(BirthmarkSpi service: addedService){
+        for(BirthmarkService service: addedService){
             if(service.getType().equals(name)){
                 return false;
             }
@@ -225,7 +217,6 @@ public class BirthmarkDefinitionPane extends JPanel{
         private StigmataFrame stigmata;
         private BirthmarkDefinitionPane thisPane;
         private JTextField type;
-        private JTextField displayType;
         private JTextArea description;
         private JComboBox extractor;
         private JComboBox comparator;
@@ -247,27 +238,23 @@ public class BirthmarkDefinitionPane extends JPanel{
             super.setEnabled(flag);
 
             type.setEnabled(flag);
-            displayType.setEnabled(flag);
             description.setEnabled(flag);
             extractor.setEnabled(flag);
             comparator.setEnabled(flag);
         }
 
         public BirthmarkService createService(){
-            BirthmarkService service = new BirthmarkService();
-            service.setType(type.getText());
-            service.setDisplayType(displayType.getText());
-            service.setDescription(description.getText());
-            service.setExtractorClassName(extractor.getSelectedItem().toString());
-            service.setComparatorClassName(comparator.getSelectedItem().toString());
-            service.setUserDefined(true);
+            BirthmarkService service = new ReflectedBirthmarkService(
+                type.getText(), description.getText(),
+                extractor.getSelectedItem().toString(),
+                comparator.getSelectedItem().toString()
+            );
 
             return service;
         }
 
         public void clear(){
             type.setText("");
-            displayType.setText("");
             description.setText("");
             extractor.getModel().setSelectedItem(null);
             comparator.getModel().setSelectedItem(null);
@@ -290,7 +277,6 @@ public class BirthmarkDefinitionPane extends JPanel{
             BirthmarkEnvironment environment = stigmata.getEnvironment();
 
             boolean flag = newType.length() > 0
-                    && displayType.getText().length() > 0
                     && extractorClass.length() > 0
                     && comparatorClass.length() > 0;
 
@@ -305,12 +291,11 @@ public class BirthmarkDefinitionPane extends JPanel{
             return flag;
         }
 
-        public void setService(BirthmarkSpi service){
+        public void setService(BirthmarkService service){
             type.setText(service.getType());
-            displayType.setText(service.getDisplayType());
-            description.setText(service.getDefaultDescription());
-            selectComboBoxItem(extractor, service.getExtractorClassName());
-            selectComboBoxItem(comparator, service.getComparatorClassName());
+            description.setText(service.getDescription());
+            selectComboBoxItem(extractor, service.getExtractor().getClass().getName());
+            selectComboBoxItem(comparator, service.getComparator().getClass().getName());
             userDefined.setSelected(service.isUserDefined());
             experimental.setSelected(service.isExperimental());
 
@@ -319,14 +304,16 @@ public class BirthmarkDefinitionPane extends JPanel{
 
         public void initData(){
             comparator.addItem("");
-            for(Iterator<BirthmarkComparatorSpi> i = stigmata.getEnvironment().lookupProviders(BirthmarkComparatorSpi.class); i.hasNext();){
-                BirthmarkComparatorSpi service = i.next();
-                comparator.addItem(service.getComparatorClassName());
+            for(Iterator<BirthmarkComparatorService> i = stigmata.getEnvironment().lookupProviders(BirthmarkComparatorService.class); i.hasNext();){
+                BirthmarkComparatorService service = i.next();
+                comparator.addItem(service.getType());
+                // TODO: 比較器の名前を引っ張る方法を考える.
             }
             extractor.addItem("");
-            for(Iterator<BirthmarkExtractorSpi> i = stigmata.getEnvironment().lookupProviders(BirthmarkExtractorSpi.class); i.hasNext();){
-                BirthmarkExtractorSpi service = i.next();
-                extractor.addItem(service.getExtractorClassName());
+            for(Iterator<BirthmarkExtractorService> i = stigmata.getEnvironment().lookupProviders(BirthmarkExtractorService.class); i.hasNext();){
+                BirthmarkExtractorService service = i.next();
+                extractor.addItem(service.getType());
+                // TODO: 考える.
             }
         }
 
@@ -337,7 +324,6 @@ public class BirthmarkDefinitionPane extends JPanel{
         private void initLayouts(){
             Messages messages = stigmata.getMessages();
             type = new JTextField();
-            displayType = new JTextField();
             extractor = new JComboBox();
             comparator = new JComboBox();
             experimental = new JCheckBox(messages.get("define.experimental.label"));
@@ -345,14 +331,12 @@ public class BirthmarkDefinitionPane extends JPanel{
             description = new JTextArea();
             JScrollPane scroll = new JScrollPane(description);
             type.setColumns(10);
-            displayType.setColumns(20);
             description.setColumns(40);
             description.setRows(10);
 
             JPanel typePane = new JPanel(new BorderLayout());
             JPanel displayTypePane = new JPanel(new BorderLayout());
             typePane.add(type, BorderLayout.CENTER);
-            displayTypePane.add(displayType, BorderLayout.CENTER);
 
             JPanel box1 = new JPanel(new BorderLayout());
             box1.add(typePane, BorderLayout.WEST);
@@ -414,7 +398,6 @@ public class BirthmarkDefinitionPane extends JPanel{
             };
 
             type.getDocument().addDocumentListener(listener);
-            displayType.getDocument().addDocumentListener(listener);
             description.getDocument().addDocumentListener(listener);
             ItemListener itemListener = new ItemListener(){
                 @Override
index 451b27c..7302dcd 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.event.ActionEvent;
 import java.io.PrintWriter;
@@ -21,7 +17,7 @@ import jp.sourceforge.stigmata.ExtractionResultSet;
 import jp.sourceforge.stigmata.ExtractionTarget;
 import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter;
 import jp.sourceforge.stigmata.printer.PrinterManager;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 import jp.sourceforge.stigmata.ui.swing.actions.PopupShowAction;
 import jp.sourceforge.stigmata.ui.swing.actions.SaveAction;
 import jp.sourceforge.stigmata.utils.AsciiDataWritable;
@@ -29,7 +25,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkExtractionResultPane extends JPanel{
     private static final long serialVersionUID = 239084365756236543L;
@@ -49,7 +44,7 @@ public class BirthmarkExtractionResultPane extends JPanel{
         Action saveAction = new SaveAction(frame, new AsciiDataWritable(){
             @Override
             public void writeAsciiData(PrintWriter out, String format){
-                ResultPrinterSpi service = PrinterManager.getInstance().getService(format);
+                ResultPrinterService service = PrinterManager.getInstance().getService(format);
                 if(service == null){
                     service = PrinterManager.getDefaultFormatService();
                 }
index d0c0566..746e283 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -14,13 +10,12 @@ import java.util.Set;
 
 import javax.swing.JPanel;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 import jp.sourceforge.talisman.i18n.Messages;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class BirthmarkSelectablePane extends JPanel implements BirthmarkServiceListener{
        private static final long serialVersionUID = 7057130952947891635L;
@@ -57,7 +52,7 @@ public abstract class BirthmarkSelectablePane extends JPanel implements Birthmar
         return selectedServices.toArray(new String[selectedServices.size()]);
     }
 
-    public BirthmarkSpi getService(String type){
+    public BirthmarkService getService(String type){
         BirthmarkSelection elem = services.get(type);
         if(elem != null){
             return elem.getService();
@@ -70,7 +65,7 @@ public abstract class BirthmarkSelectablePane extends JPanel implements Birthmar
         String[] serviceArray = new String[services.size()];
         int index = 0;
         for(String key: services.keySet()){
-            BirthmarkSpi service = services.get(key).getService();
+            BirthmarkService service = services.get(key).getService();
             serviceArray[index] = service.getType();
             index++;
         }
@@ -91,7 +86,7 @@ public abstract class BirthmarkSelectablePane extends JPanel implements Birthmar
         fireEvent();
     }
 
-    public void select(BirthmarkSpi service, boolean flag){
+    public void select(BirthmarkService service, boolean flag){
         select(service.getType(), flag);
     }
 
@@ -108,7 +103,7 @@ public abstract class BirthmarkSelectablePane extends JPanel implements Birthmar
     }
 
     @Override
-    public void serviceAdded(BirthmarkSpi service){
+    public void serviceAdded(BirthmarkService service){
         if(services.get(service.getType()) == null){
             BirthmarkSelection elem = new BirthmarkSelection(service);
             selectedServices.add(service.getType());
@@ -119,7 +114,7 @@ public abstract class BirthmarkSelectablePane extends JPanel implements Birthmar
     }
 
     @Override
-    public void serviceRemoved(BirthmarkSpi service){
+    public void serviceRemoved(BirthmarkService service){
         BirthmarkSelection elem = services.get(service);
         if(elem != null){
             selectedServices.remove(service);
@@ -147,10 +142,10 @@ public abstract class BirthmarkSelectablePane extends JPanel implements Birthmar
     }
 
     private void initServices(){
-        BirthmarkSpi[] serviceArray = stigmata.getEnvironment().getServices();
+        BirthmarkService[] serviceArray = stigmata.getEnvironment().getServices();
 
         services = new LinkedHashMap<String, BirthmarkSelection>();
-        for(BirthmarkSpi service: serviceArray){
+        for(BirthmarkService service: serviceArray){
             BirthmarkSelection elem = new BirthmarkSelection(service);
             services.put(service.getType(), elem);
         }
index 97d4efa..640452b 100644 (file)
@@ -1,28 +1,23 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/**
- *  $Id$
- */
-
 import java.io.Serializable;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 class BirthmarkSelection implements Serializable{
     private static final long serialVersionUID = -3244323970546344L;
 
-    private BirthmarkSpi service;
+    private BirthmarkService service;
     private boolean selected = true;
 
-    public BirthmarkSelection(BirthmarkSpi service){
+    public BirthmarkSelection(BirthmarkService service){
         this.service = service;
     }
 
-    public BirthmarkSpi getService(){
+    public BirthmarkService getService(){
         return service;
     }
 
index e807e83..d0fca32 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.GridLayout;
@@ -19,7 +15,6 @@ import javax.swing.JPanel;
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkSelectionCheckSetPane extends BirthmarkSelectablePane{
     private static final long serialVersionUID = 3209854654743223453L;
@@ -75,7 +70,7 @@ public class BirthmarkSelectionCheckSetPane extends BirthmarkSelectablePane{
         for(Iterator<BirthmarkSelection> i = birthmarkSelections(); i.hasNext(); ){
             final BirthmarkSelection elem = i.next();
             if(elem.isVisible(isExperimentalMode())){
-                JCheckBox check = new JCheckBox(elem.getService().getDisplayType());
+                JCheckBox check = new JCheckBox(elem.getService().getType());
                 check.setSelected(elem.isSelected());
                 check.addActionListener(new ActionListener(){
                     @Override
index da28e3b..2ae8590 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.event.ActionEvent;
@@ -23,12 +19,11 @@ import javax.swing.UIManager;
 import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkSelectionListPane extends BirthmarkSelectablePane{
     private static final long serialVersionUID = 3209854654743223453L;
@@ -43,7 +38,7 @@ public class BirthmarkSelectionListPane extends BirthmarkSelectablePane{
     }
 
     @Override
-    public void serviceRemoved(BirthmarkSpi service){
+    public void serviceRemoved(BirthmarkService service){
         BirthmarkSelection elem = getSelection(service.getType());
         model.removeElement(elem);
         
@@ -123,7 +118,7 @@ public class BirthmarkSelectionListPane extends BirthmarkSelectablePane{
         @Override
         public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean forcus){
             BirthmarkSelection elem = (BirthmarkSelection)value;
-            setText(elem.getService().getDisplayType());
+            setText(elem.getService().getType());
             setToolTipText(elem.getService().getDescription());
             setSelected(elem.isSelected());
 
index da84ace..2a73989 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
@@ -18,12 +14,11 @@ import javax.swing.UIManager;
 import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
 
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkServiceListCellRenderer extends JPanel implements ListCellRenderer{
     private static final long serialVersionUID = 3254763527508235L;
@@ -47,9 +42,9 @@ public class BirthmarkServiceListCellRenderer extends JPanel implements ListCell
 
     @Override
     public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean hasFocus){
-        if(value instanceof BirthmarkSpi){
-            BirthmarkSpi service = (BirthmarkSpi)value;
-            leftLabel.setText(service.getDisplayType());
+        if(value instanceof BirthmarkService){
+            BirthmarkService service = (BirthmarkService)value;
+            leftLabel.setText(service.getType());
             rightLabel.setText("(" + service.getType() + ")");
         }
         else{
index 99e5173..8162a24 100644 (file)
@@ -1,18 +1,13 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface BirthmarkServiceListener{
-    public void serviceAdded(BirthmarkSpi service);
+    public void serviceAdded(BirthmarkService service);
 
-    public void serviceRemoved(BirthmarkSpi service);
+    public void serviceRemoved(BirthmarkService service);
 }
index ecf03a9..197b6d9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -17,7 +13,6 @@ import jp.sourceforge.stigmata.BirthmarkSet;
  * 
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkTree extends JTree{
     private static final long serialVersionUID = 68345692177534765L;
index 881a8f1..9c5b546 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import javax.swing.tree.DefaultMutableTreeNode;
 
 import jp.sourceforge.stigmata.Birthmark;
@@ -13,7 +9,6 @@ import jp.sourceforge.stigmata.BirthmarkSet;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkTreeNode extends DefaultMutableTreeNode{
     private static final long serialVersionUID = -12323457653245L;
index 55bcab0..e85684c 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -17,7 +13,6 @@ import jp.sourceforge.stigmata.BirthmarkSet;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ClassNameObfuscator{
     private Map<String, String> nameMapping = new HashMap<String, String>();
index 416fd20..c139e34 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
@@ -33,7 +29,6 @@ import jp.sourceforge.talisman.i18n.Messages;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ClasspathSettingsPane extends JPanel{
     private static final long serialVersionUID = 320973463423634L;
index 52c77ac..3c10897 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
@@ -22,7 +18,6 @@ import javax.swing.ListCellRenderer;
  * http://terai.xrea.jp/Swing/ClippedLRComboBox.html
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class ClippedLRListCellRenderer extends JPanel implements ListCellRenderer{
     private static final long serialVersionUID = 32943674625674235L;
index 5622c43..c299ceb 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$ 
- */
-
 import java.awt.Color;
 import java.awt.Component;
 
@@ -15,7 +11,6 @@ import jp.sourceforge.stigmata.BirthmarkEnvironment;
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class CompareTableCellRenderer extends DefaultTableCellRenderer{
     private static final long serialVersionUID = 234557758658567345L;
index 5f3fe9a..19fc8a3 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
@@ -41,7 +37,6 @@ import jp.sourceforge.stigmata.utils.WellknownClassManager;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ControlPane extends JPanel{
     private static final long serialVersionUID = 983547612346543645L;
index f3143ef..04478c7 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.util.EventListener;
 
 /**
@@ -11,7 +7,6 @@ import java.util.EventListener;
  * 
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface DataChangeListener extends EventListener{
     public void valueChanged(Object source);
index 81b6c70..59f6503 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -14,7 +10,6 @@ import javax.swing.filechooser.FileFilter;
  * File filter by file extension.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ExtensionFilter extends FileFilter implements java.io.FileFilter{
     private List<String> extensions = new ArrayList<String>();
index 7876294..e88f96b 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -34,7 +30,6 @@ import jp.sourceforge.talisman.i18n.Messages;
  * Birthmark extraction history viewer.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class ExtractedHistoryPane extends JPanel{
     private static final long serialVersionUID = 4070750464486981964L;
index 4f14182..74e8052 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.Component;
 import java.io.File;
 import java.text.MessageFormat;
@@ -17,7 +13,6 @@ import jp.sourceforge.stigmata.BirthmarkEnvironment;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class FileIOManager{
     private Component parent;
index 2aa4046..0b1b13f 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
@@ -32,7 +28,6 @@ import jp.sourceforge.stigmata.ui.swing.filter.FilterSetDefinitionPane;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class FilterManagementPane extends JPanel implements ComparisonPairFilterRetainable{
     private static final long serialVersionUID = 972135792354L;
index 79566ba..104a8cf 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.event.MouseAdapter;
@@ -35,7 +31,6 @@ import jp.sourceforge.stigmata.ui.swing.filter.FilterSetDefinitionPane;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class FilterSelectionPane extends JPanel implements ComparisonPairFilterRetainable{
     private static final long serialVersionUID = 1825547576389498336L;
index da298fa..e8b8eeb 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
@@ -40,7 +36,6 @@ import jp.sourceforge.talisman.i18n.Messages;
  * Utility routines for building GUI.
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class GUIUtility{
     private GUIUtility(){
index 55b6da0..75d9da9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.FlowLayout;
@@ -26,14 +22,13 @@ import jp.sourceforge.stigmata.BirthmarkSet;
 import jp.sourceforge.stigmata.ComparisonPair;
 import jp.sourceforge.stigmata.ComparisonPairElement;
 import jp.sourceforge.stigmata.printer.PrinterManager;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 import jp.sourceforge.stigmata.ui.swing.actions.SaveAction;
 import jp.sourceforge.stigmata.utils.AsciiDataWritable;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class PairComparisonPane extends JPanel{
     private static final long serialVersionUID = 2342856785474356234L;
@@ -79,7 +74,7 @@ public class PairComparisonPane extends JPanel{
             frame.getMessages(), "savecomparison", new SaveAction(frame, new AsciiDataWritable(){
                 @Override
                 public void writeAsciiData(PrintWriter out, String format) throws IOException{
-                    ResultPrinterSpi service = PrinterManager.getInstance().getService(format);
+                    ResultPrinterService service = PrinterManager.getInstance().getService(format);
                     if(service == null){
                         service = PrinterManager.getDefaultFormatService();
                     }
index 488ef6b..e5ea8ec 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
@@ -34,7 +30,7 @@ import jp.sourceforge.stigmata.ComparisonPair;
 import jp.sourceforge.stigmata.ComparisonResultSet;
 import jp.sourceforge.stigmata.printer.PrinterManager;
 import jp.sourceforge.stigmata.result.CertainPairComparisonResultSet;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 import jp.sourceforge.stigmata.ui.swing.actions.SaveAction;
 import jp.sourceforge.stigmata.ui.swing.actions.UpdateBirthmarkCellColorAction;
 import jp.sourceforge.stigmata.utils.AsciiDataWritable;
@@ -43,7 +39,6 @@ import jp.sourceforge.stigmata.utils.AsciiDataWritable;
  * 
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class PairComparisonResultSetPane extends JPanel{
     private static final long serialVersionUID = 3298346465652354302L;
@@ -129,7 +124,7 @@ public class PairComparisonResultSetPane extends JPanel{
             frame.getMessages(), "savecomparison", new SaveAction(frame, new AsciiDataWritable(){
                 @Override
                 public void writeAsciiData(PrintWriter out, String format) throws IOException{
-                    ResultPrinterSpi service = PrinterManager.getInstance().getService(format);
+                    ResultPrinterService service = PrinterManager.getInstance().getService(format);
                     if(service == null){
                         service = PrinterManager.getDefaultFormatService();
                     }
index 2102fd4..3540883 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.Insets;
@@ -21,7 +17,6 @@ import javax.swing.plaf.metal.MetalComboBoxIcon;
  * Popup button.
  * 
  * @author tamada
- * @version $Revision$ 
  */
 public class PopupButton extends JPanel{
     private static final long serialVersionUID = -4428839967597028837L;
index 65a1979..06ecc72 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
@@ -38,7 +34,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class PropertyEditPane extends JPanel{
     private static final long serialVersionUID = 12397342543653L;
index a3fd83e..cb530c4 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.GridLayout;
@@ -44,7 +40,7 @@ import jp.sourceforge.stigmata.filter.FilteredComparisonResultSet;
 import jp.sourceforge.stigmata.printer.PrinterManager;
 import jp.sourceforge.stigmata.result.CertainPairComparisonResultSet;
 import jp.sourceforge.stigmata.result.RoundRobinComparisonResultSet;
-import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
+import jp.sourceforge.stigmata.spi.ResultPrinterService;
 import jp.sourceforge.stigmata.ui.swing.actions.SaveAction;
 import jp.sourceforge.stigmata.ui.swing.actions.UpdateBirthmarkCellColorAction;
 import jp.sourceforge.stigmata.utils.AsciiDataWritable;
@@ -53,7 +49,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class RoundRobinComparisonResultPane extends JPanel{
     private static final long serialVersionUID = 2134574576543623L;
@@ -251,7 +246,7 @@ public class RoundRobinComparisonResultPane extends JPanel{
             messages, "savecomparison", new SaveAction(stigmata, new AsciiDataWritable(){
                 @Override
                 public void writeAsciiData(PrintWriter out, String format){
-                    ResultPrinterSpi service = PrinterManager.getInstance().getService(format);
+                    ResultPrinterService service = PrinterManager.getInstance().getService(format);
                     if(service == null){
                         service = PrinterManager.getDefaultFormatService();
                     }
index da988aa..f7b5e2e 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Image;
 import java.awt.event.ActionEvent;
@@ -75,7 +71,6 @@ import org.apache.commons.cli.ParseException;
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public class StigmataFrame extends JFrame{
     private static final long serialVersionUID = 92345543665342134L;
index 80b672e..62a79ce 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.datatransfer.DataFlavor;
 import java.awt.datatransfer.Transferable;
@@ -47,7 +43,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class TargetSelectionPane extends JPanel{
     private static final long serialVersionUID = 3209435745432235432L;
index 0c834d6..6995315 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.util.HashMap;
 import java.util.Map;
 
@@ -13,7 +9,6 @@ import javax.swing.table.DefaultTableModel;
  * 
  *
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class UneditableDefaultTableModel extends DefaultTableModel{
     private static final long serialVersionUID = -7483377914997660949L;
index aee2f6d..acbff01 100644 (file)
@@ -1,13 +1,8 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class UnsupportedFormatException extends Exception{
     private static final long serialVersionUID = 8165384564671102575L;
index 65e307a..7c6af83 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
@@ -43,7 +39,6 @@ import jp.sourceforge.talisman.i18n.Messages;
  * Well-known classes judge rules management pane.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class WellknownClassesSettingsPane extends JPanel{
     private static final long serialVersionUID = 329734546345634532L;
index b6147b9..33d0243 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 
 import javax.swing.JLabel;
@@ -15,7 +11,6 @@ import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class AboutAction extends ShowTextAction{
     private static final long serialVersionUID = -7060581883871662749L;
index 761193a..f2147f9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import java.awt.Color;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -18,7 +14,6 @@ import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ChangeColorAction extends AbstractAction{
     private static final long serialVersionUID = -7617597154707466764L;
index e39894b..84d1821 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ui.swing.GUIUtility;
 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class LicenseAction extends ShowTextAction{
     private static final long serialVersionUID = 7727665273988881423L;
index 10ff257..0277814 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import java.awt.Desktop;
 import java.net.URL;
 
@@ -13,7 +9,6 @@ import javax.swing.event.HyperlinkListener;
 /**
  *
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 class LinkFollower implements HyperlinkListener{
     @Override
index 05389fc..8878d94 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import java.awt.Component;
 import java.awt.Desktop;
 import java.awt.event.ActionEvent;
@@ -19,7 +15,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class OpenSettingDirAction extends AbstractAction{
     private static final long serialVersionUID = -8347328823893358927L;
index 7dd099a..2753a4f 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import java.awt.event.ActionEvent;
 import java.io.BufferedOutputStream;
 import java.io.File;
@@ -24,7 +20,6 @@ import jp.sourceforge.stigmata.utils.BinaryDataWritable;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class SaveAction extends AbstractAction{
     private static final long serialVersionUID = 1427912047636729211L;
index ceb65b2..258bda9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
@@ -26,7 +22,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 abstract class ShowTextAction extends AbstractAction{
        private static final long serialVersionUID = 7341139545864209076L;
@@ -83,7 +78,7 @@ abstract class ShowTextAction extends AbstractAction{
     protected String loadStringFromFile(URL url){
         try{
             String line;
-            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
+            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "utf-8"));
             StringWriter writer = new StringWriter();
             PrintWriter out = new PrintWriter(writer);
             while((line = in.readLine()) != null){
index db07a80..5a5e836 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.actions;
 
-/*
- * $Id$
- */
-
 import java.awt.Color;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
@@ -26,7 +22,6 @@ import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class UpdateBirthmarkCellColorAction extends AbstractAction{
     private static final long serialVersionUID = 2390797591047570440L;
index def1808..73725ca 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.util.Locale;
 
 import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
@@ -11,7 +7,6 @@ import jp.sourceforge.stigmata.utils.LocalizedDescriptionManager;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class AbstractComparisonPairFilterComponentService implements ComparisonPairFilterComponentService{
     @Override
index ffce2a8..5dd88a7 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.awt.Dimension;
 import java.awt.GridLayout;
 import java.util.ArrayList;
@@ -17,8 +13,8 @@ import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.BirthmarkElementCountComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.BirthmarkElementCountComparisonPairFilterService;
 import jp.sourceforge.stigmata.filter.FilterTarget;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 import jp.sourceforge.stigmata.ui.swing.BirthmarkServiceListCellRenderer;
 import jp.sourceforge.stigmata.ui.swing.BirthmarkServiceListener;
 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
@@ -26,13 +22,12 @@ import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class BirthmarkElementCountComparisonPairFilterComponentService extends AbstractComparisonPairFilterComponentService implements BirthmarkServiceListener{
     private Pane pane;
 
     @Override
-    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterSpi service){
+    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterService service){
         pane = new Pane(frame, service);
         return pane;
     }
@@ -43,42 +38,42 @@ public class BirthmarkElementCountComparisonPairFilterComponentService extends A
     }
 
     @Override
-    public void serviceAdded(BirthmarkSpi service){
+    public void serviceAdded(BirthmarkService service){
         pane.serviceAdded(service);
     }
 
     @Override
-    public void serviceRemoved(BirthmarkSpi service){
+    public void serviceRemoved(BirthmarkService service){
         pane.serviceRemoved(service);
     }
 
     @Override
-    public ComparisonPairFilterSpi getComparisonPairFilterService(){
+    public ComparisonPairFilterService getComparisonPairFilterService(){
         return new BirthmarkElementCountComparisonPairFilterService();
     }
 
     private static class Pane extends ComparisonPairFilterPane implements BirthmarkServiceListener{
         private static final long serialVersionUID = -6398073942592186671L;
 
-        private ComparisonPairFilterSpi service;
+        private ComparisonPairFilterService service;
         private JComboBox criterionType;
         private JTextField threshold;
         private JComboBox targetType;
         private JComboBox birthmarks;
 
-        public Pane(StigmataFrame frame, ComparisonPairFilterSpi service){
+        public Pane(StigmataFrame frame, ComparisonPairFilterService service){
             super(frame);
             this.service = service;
             initLayouts();
         }
 
         @Override
-        public void serviceAdded(BirthmarkSpi service){
+        public void serviceAdded(BirthmarkService service){
             birthmarks.addItem(service);
         }
 
         @Override
-        public void serviceRemoved(BirthmarkSpi service){
+        public void serviceRemoved(BirthmarkService service){
             birthmarks.removeItem(service);
         }
 
@@ -149,7 +144,7 @@ public class BirthmarkElementCountComparisonPairFilterComponentService extends A
         }
 
         private String getBirthmarkType(){
-            BirthmarkSpi service = (BirthmarkSpi)birthmarks.getSelectedItem();
+            BirthmarkService service = (BirthmarkService)birthmarks.getSelectedItem();
             if(service != null){
                 return service.getType();
             }
index 470e7e0..4996f5f 100644 (file)
@@ -1,18 +1,13 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.util.Locale;
 
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public interface ComparisonPairFilterComponentService{
     public String getDisplayFilterName(Locale locale);
@@ -21,7 +16,7 @@ public interface ComparisonPairFilterComponentService{
 
     public String getFilterName();
 
-    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterSpi service);
+    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterService service);
 
-    public ComparisonPairFilterSpi getComparisonPairFilterService();
+    public ComparisonPairFilterService getComparisonPairFilterService();
 }
index 2d8afe1..27dcfe8 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface ComparisonPairFilterListener{
     public void filterAdded(ComparisonPairFilter filter);
index 1f3fb3d..ebd9cdf 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.util.HashMap;
 import java.util.Map;
 
@@ -19,7 +15,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public abstract class ComparisonPairFilterPane extends JPanel{
        private static final long serialVersionUID = -5201125568912008141L;
index fe93649..a447495 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.ComparisonPairFilterSet;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface ComparisonPairFilterRetainable{
     public void filterSelected(ComparisonPairFilter filter);
index e755064..0eb4b46 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.CardLayout;
 import java.awt.Dimension;
@@ -24,8 +20,8 @@ import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 
 import jp.sourceforge.stigmata.ComparisonPairFilter;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 import jp.sourceforge.stigmata.ui.swing.BirthmarkServiceListener;
 import jp.sourceforge.stigmata.ui.swing.GUIUtility;
 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
@@ -34,7 +30,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public class FilterEditingPane extends JPanel{
     private static final long serialVersionUID = -2607954525579006086L;
@@ -76,8 +71,8 @@ public class FilterEditingPane extends JPanel{
         resetOldComponent();
         this.filter = filter;
         if(filter != null && filter.getService() != null){
-            ComparisonPairFilterSpi service = filter.getService();
-            String name = service.getDisplayFilterName();
+            ComparisonPairFilterService service = filter.getService();
+            String name = service.getFilterName();
 
             combo.setSelectedItem(name);
             card.show(cardComponent, name);
@@ -88,7 +83,7 @@ public class FilterEditingPane extends JPanel{
 
     private void resetOldComponent(){
         if(filter != null){
-            paneMap.get(filter.getService().getDisplayFilterName()).resetComponents();
+            paneMap.get(filter.getService().getFilterName()).resetComponents();
         }
     }
 
@@ -115,7 +110,7 @@ public class FilterEditingPane extends JPanel{
 
             ComparisonPairFilterPane pane = service.createComponent(stigmata, service.getComparisonPairFilterService());
             if(pane instanceof BirthmarkServiceListener){
-                for(BirthmarkSpi bs: stigmata.getEnvironment().getServices()){
+                for(BirthmarkService bs: stigmata.getEnvironment().getServices()){
                     ((BirthmarkServiceListener)pane).serviceAdded(bs);
                 }
                 stigmata.addBirthmarkServiceListener((BirthmarkServiceListener)pane);
@@ -148,7 +143,7 @@ public class FilterEditingPane extends JPanel{
                 card.show(cardComponent, item);
                 if(paneMap.get(item) != null){
                     if(filter != null){
-                        String oldType = filter.getService().getDisplayFilterName();
+                        String oldType = filter.getService().getFilterName();
                         if(item.equals(oldType)){
                             paneMap.get(item).setFilter(filter);
                         }
index c458508..a6cbb78 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
@@ -33,7 +29,6 @@ import jp.sourceforge.talisman.i18n.Messages;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public class FilterSetDefinitionPane extends JPanel implements ComparisonPairFilterListener{
     private static final long serialVersionUID = 7519306603672717119L;
index ef81d9b..a036692 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.awt.GridLayout;
 import java.util.ArrayList;
 import java.util.List;
@@ -17,18 +13,17 @@ import javax.swing.event.DocumentListener;
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.SimilarityComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.SimilarityComparisonPairFilterService;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public class SimilarityComparisonPairFilterComponentService extends AbstractComparisonPairFilterComponentService{
 
     @Override
-    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterSpi service){
+    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterService service){
         return new Pane(frame, service);
     }
 
@@ -38,17 +33,17 @@ public class SimilarityComparisonPairFilterComponentService extends AbstractComp
     }
 
     @Override
-    public ComparisonPairFilterSpi getComparisonPairFilterService(){
+    public ComparisonPairFilterService getComparisonPairFilterService(){
         return new SimilarityComparisonPairFilterService();
     }
 
     private static class Pane extends ComparisonPairFilterPane{
         private static final long serialVersionUID = 8912037614500713027L;
-        private ComparisonPairFilterSpi service;
+        private ComparisonPairFilterService service;
         private JComboBox criterionType;
         private JTextField threshold;
 
-        public Pane(StigmataFrame frame, ComparisonPairFilterSpi service){
+        public Pane(StigmataFrame frame, ComparisonPairFilterService service){
             super(frame);
             this.service = service;
             initLayouts();
index 742c1ef..b7aaacc 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.awt.GridLayout;
 import java.util.ArrayList;
 import java.util.List;
@@ -16,17 +12,16 @@ import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.FilterTarget;
 import jp.sourceforge.stigmata.filter.TargetNameComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.TargetNameComparisonPairFilterService;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class TargetNameComparisonPairFilterComponentService extends AbstractComparisonPairFilterComponentService{
 
     @Override
-    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterSpi service){
+    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterService service){
         return new Pane(frame, service);
     }
 
@@ -36,18 +31,18 @@ public class TargetNameComparisonPairFilterComponentService extends AbstractComp
     }
 
     @Override
-    public ComparisonPairFilterSpi getComparisonPairFilterService(){
+    public ComparisonPairFilterService getComparisonPairFilterService(){
         return new TargetNameComparisonPairFilterService();
     }
 
     private static class Pane extends ComparisonPairFilterPane{
         private static final long serialVersionUID = 8912037614500713027L;
-        private ComparisonPairFilterSpi service;
+        private ComparisonPairFilterService service;
         private JComboBox criterionType;
         private JTextField value;
         private JComboBox targetType;
 
-        public Pane(StigmataFrame frame, ComparisonPairFilterSpi service){
+        public Pane(StigmataFrame frame, ComparisonPairFilterService service){
             super(frame);
             this.service = service;
             initLayouts();
index 402aa69..9627a7b 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.filter;
 
-/*
- * $Id$
- */
-
 import java.awt.GridLayout;
 import java.util.ArrayList;
 import java.util.List;
@@ -16,17 +12,16 @@ import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.FilterTarget;
 import jp.sourceforge.stigmata.filter.TotalElementCountComparisonPairFilter;
 import jp.sourceforge.stigmata.filter.TotalElementCountComparisonPairFilterService;
-import jp.sourceforge.stigmata.spi.ComparisonPairFilterSpi;
+import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class TotalElementCountComparisonPairFilterComponentService extends AbstractComparisonPairFilterComponentService{
 
     @Override
-    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterSpi service){
+    public ComparisonPairFilterPane createComponent(StigmataFrame frame, ComparisonPairFilterService service){
         return new Pane(frame, service);
     }
 
@@ -36,18 +31,18 @@ public class TotalElementCountComparisonPairFilterComponentService extends Abstr
     }
 
     @Override
-    public ComparisonPairFilterSpi getComparisonPairFilterService(){
+    public ComparisonPairFilterService getComparisonPairFilterService(){
         return new TotalElementCountComparisonPairFilterService();
     }
 
     private static class Pane extends ComparisonPairFilterPane{
         private static final long serialVersionUID = 8912037614500713027L;
-        private ComparisonPairFilterSpi service;
+        private ComparisonPairFilterService service;
         private JComboBox criterionType;
         private JTextField threshold;
         private JComboBox targetType;
 
-        public Pane(StigmataFrame frame, ComparisonPairFilterSpi service){
+        public Pane(StigmataFrame frame, ComparisonPairFilterService service){
             super(frame);
             this.service = service;
             initLayouts();
index da42ee3..0a31118 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.graph;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
@@ -35,7 +31,6 @@ import jp.sourceforge.stigmata.ui.swing.actions.ChangeColorAction;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class SimilarityDistributionGraphPane extends JPanel{
     private static final long serialVersionUID = 2314463453465L;
index c6c4e11..283123c 100644 (file)
@@ -1,7 +1,4 @@
 package jp.sourceforge.stigmata.ui.swing.mds;
-/*
- * $Id$
- */
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -13,7 +10,6 @@ import jp.sourceforge.talisman.mds.ui.swing.GeometoryType;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 class LabelMap{
     private List<String> labels = new ArrayList<String>();
index 3ef9793..770d5a9 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.mds;
 
-/*
- * $Id$
- */
-
 import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Graphics2D;
@@ -21,7 +17,6 @@ import jp.sourceforge.talisman.mds.ui.swing.MdsPane;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public class MdsImageExporter implements BinaryDataWritable{
     private MdsPane viewer;
index b4b91e5..ea65cb2 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.mds;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.PrintWriter;
 
@@ -15,7 +11,6 @@ import jp.sourceforge.talisman.mds.ui.swing.MdsPane;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$
  */
 public class MdsItemsLocationExporter implements AsciiDataWritable{
     private MdsPane viewer;
index 6fc1479..a89f02a 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.mds;
 
-/*
- * $Id$
- */
-
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.FlowLayout;
@@ -58,7 +54,6 @@ import jp.sourceforge.talisman.mds.ui.swing.actions.ZoomOutAction;
 /**
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class MdsViewerPane extends JPanel implements ZoomEnabler, MessageManager{
     private static final long serialVersionUID = -7256554014379112897L;
index 98cde0e..eefccbd 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.mds;
 
-/*
- * $Id$
- */
-
 import java.awt.event.ActionEvent;
 
 import javax.swing.AbstractAction;
@@ -24,7 +20,6 @@ import jp.sourceforge.talisman.mds.ui.swing.MdsPane;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class OpenItemsAction extends AbstractAction{
     private static final long serialVersionUID = 5956900396146338537L;
index 51c52ed..abd27d2 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.tab;
 
-/*
- * $Id$
- */
-
 import java.awt.LayoutManager;
 import java.awt.Rectangle;
 import java.awt.event.MouseAdapter;
@@ -17,7 +13,6 @@ import javax.swing.JPanel;
  * 
  * @author Haruaki Tamada
  * @author Terai Atsuhiro
- * @version $Revision$ 
  */
 class EditableGlassPane extends JPanel{
     private static final long serialVersionUID = 9009103705988625476L;
index 76dda76..ea1a115 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.tab;
 
-/*
- * $Id$
- */
-
 import java.awt.FocusTraversalPolicy;
 import java.awt.Rectangle;
 import java.awt.event.FocusAdapter;
@@ -25,7 +21,6 @@ import javax.swing.JTextField;
  * 
  * @author Haruaki Tamada
  * @author Terai Atsuhiro
- * @version $Revision$ 
  */
 public class EditableTabbedPane extends JTabbedPane{
     private static final long serialVersionUID = -66174062280771547L;
index 4e6c498..a29722b 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.ui.swing.tab;
 
-/*
- * $Id$
- */
-
 import java.awt.Component;
 import java.awt.Container;
 import java.awt.FocusTraversalPolicy;
@@ -16,7 +12,6 @@ import javax.swing.JTextField;
  * 
  * @author Haruaki Tamada
  * @author Terai Atsuhiro
- * @version $Revision$ 
  */
 class EditableTabbedPaneFocusTraversalPolicy extends FocusTraversalPolicy{
     private JTextField editor;
index e4d4910..a0b1099 100644 (file)
@@ -1,15 +1,10 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revission$ 
  */
 public class ArrayIterator<T> implements Iterator<T>{
     private T[] values;
index aed0fad..dc6b1cb 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.PrintWriter;
 
@@ -12,7 +8,6 @@ import jp.sourceforge.stigmata.ui.swing.UnsupportedFormatException;
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public interface AsciiDataWritable{
     public void writeAsciiData(PrintWriter out, String format) throws IOException, UnsupportedFormatException;
index f790690..985b040 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.OutputStream;
 
@@ -11,7 +7,6 @@ import jp.sourceforge.stigmata.ui.swing.UnsupportedFormatException;
 
 /**
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public interface BinaryDataWritable{
     public void writeBinaryData(OutputStream out, String format) throws IOException, UnsupportedFormatException;
index ae0aa5c..1f7fab1 100644 (file)
@@ -1,8 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.URL;
@@ -12,8 +9,8 @@ import java.util.Map;
 import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.ComparisonPairFilterSet;
-import jp.sourceforge.stigmata.birthmarks.BirthmarkService;
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+import jp.sourceforge.stigmata.spi.ReflectedBirthmarkService;
 
 import org.apache.commons.beanutils.BeanUtils;
 
@@ -21,7 +18,6 @@ import org.apache.commons.beanutils.BeanUtils;
  * Export birthmark environment to xml file.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ConfigFileExporter{
     private BirthmarkEnvironment environment;
@@ -35,17 +31,21 @@ public class ConfigFileExporter{
     }
 
     public void export(PrintWriter out) throws IOException{
-        out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
-        out.println("<stigmata>");
+        try{
+            out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
+            out.println("<stigmata>");
 
-        exportServices(out);
-        exportFilters(out);
-        exportWellknownClasses(out);
-        exportClasspath(out);
-        exportProperties(out);
+            exportServices(out);
+            exportFilters(out);
+            exportWellknownClasses(out);
+            exportClasspath(out);
+            exportProperties(out);
 
-        out.println("</stigmata>");
-        out.flush();
+            out.println("</stigmata>");
+            out.flush();
+        } finally{
+            out.close();
+        }
     }
 
     private void exportProperties(PrintWriter out) throws IOException{
@@ -160,14 +160,16 @@ public class ConfigFileExporter{
 
     private void exportServices(PrintWriter out) throws IOException{
         out.println("  <birthmark-services>");
-        for(BirthmarkSpi service: environment.getServices()){
+        for(BirthmarkService service: environment.getServices()){
             if(service.isExperimental() && service instanceof BirthmarkService){
                 out.println("    <birthmark-service>");
                 out.printf("      <type>%s</type>%n", service.getType());
-                out.printf("      <display-name>%s</display-name>%n", service.getDisplayType());
-                out.printf("      <description>%s</description>%n", service.getDescription());
-                out.printf("      <extractor>%s</extractor>%n", service.getExtractorClassName());
-                out.printf("      <comparator>%s</comparator>%n", service.getComparatorClassName());
+                if(service instanceof ReflectedBirthmarkService){
+                    ReflectedBirthmarkService rbs = (ReflectedBirthmarkService)service;
+                    out.printf("      <description>%s</description>%n", rbs.getDescription());
+                    out.printf("      <extractor>%s</extractor>%n", rbs.getExtractorClassName());
+                    out.printf("      <comparator>%s</comparator>%n", rbs.getComparatorClassName());
+                }
                 out.println("    </birthmark-service>");
             }
         }
index c94e433..6012343 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
@@ -19,7 +15,8 @@ import jp.sourceforge.stigmata.BirthmarkEnvironment;
 import jp.sourceforge.stigmata.ComparisonPairFilter;
 import jp.sourceforge.stigmata.ComparisonPairFilterSet;
 import jp.sourceforge.stigmata.Stigmata;
-import jp.sourceforge.stigmata.birthmarks.BirthmarkService;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
+import jp.sourceforge.stigmata.spi.ReflectedBirthmarkService;
 
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -29,7 +26,6 @@ import org.xml.sax.helpers.DefaultHandler;
  * configuration file parser.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class ConfigFileImporter{
     private BirthmarkEnvironment environment;
@@ -65,7 +61,7 @@ public class ConfigFileImporter{
     private static class Handler extends DefaultHandler{
         private BirthmarkEnvironment environment;
         private WellknownClassManager manager;
-        private BirthmarkService service;
+        private Map<String, String> serviceMap;
         private ComparisonPairFilterSet filter;
         private Part part;
         private boolean exclude;
@@ -104,8 +100,6 @@ public class ConfigFileImporter{
             }
             else if(qname.equals("birthmark-service")){
                 part = Part.SERVICES;
-                service = new BirthmarkService();
-                service.setUserDefined(false);
             }
             else if(qname.equals("filterset-list")){
                 part = Part.FILTER_SET;
@@ -168,23 +162,16 @@ public class ConfigFileImporter{
                 }
                 else if(part == Part.CLASSPATH && qname.equals("classpath")){
                     try{
-                        environment.getClasspathContext().addClasspath(
-                                new URL(value));
+                        environment.getClasspathContext().addClasspath(new URL(value));
                     }catch(MalformedURLException e){
                         throw new SAXException(e);
                     }
                 }
                 else if(part == Part.SERVICES){
-                    if(qname.equals("type"))
-                        service.setType(value);
-                    else if(qname.equals("display-name"))
-                        service.setDisplayType(value);
-                    else if(qname.equals("description"))
-                        service.setDescription(value);
-                    else if(qname.equals("extractor"))
-                        service.setExtractorClassName(value);
-                    else if(qname.equals("comparator"))
-                        service.setComparatorClassName(value);
+                    if(serviceMap == null){
+                        serviceMap = new HashMap<String, String>();
+                    }
+                    serviceMap.put(qname, value);
                 }
                 else if(part == Part.FILTER_SET){
                     if(qname.equals("name")){
@@ -219,8 +206,13 @@ public class ConfigFileImporter{
         @Override
         public void endElement(String uri, String localname, String qname){
             if(part == Part.SERVICES && qname.equals("birthmark-service")){
+                BirthmarkService service = new ReflectedBirthmarkService(
+                    serviceMap.get("type"),
+                    serviceMap.get("description"),
+                    serviceMap.get("extractor"),
+                    serviceMap.get("comparator")
+                );
                 environment.addService(service);
-                service = null;
             }
             else if(part == Part.FILTER_DEFINITION && qname.equals("filter")){
                 ComparisonPairFilter f = environment.getFilterManager().buildFilter(
index 25b9a96..bbf8610 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.io.Serializable;
 
 /**
  * This class represents a fully class name.
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 class FullyClassName implements Serializable{
     private static final long serialVersionUID = 1911603124143509407L;
index d522df1..5491805 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -25,7 +21,6 @@ import jp.sourceforge.talisman.hermes.maven.Artifact;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$
  */
 public class HermesUtility{
     private HermesContext context;
index 323f082..9e2cad6 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -12,7 +8,6 @@ import java.util.ResourceBundle;
 
 /**
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class LocalizedDescriptionManager{
     public static enum ServiceCategory{
index 5f3a659..9efcd9f 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -13,7 +9,6 @@ import java.util.NoSuchElementException;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class MultipleIterator<T> implements Iterator<T>{
     private List<Iterator<T>> iterators = new ArrayList<Iterator<T>>();
index 0bbdc6f..093a473 100644 (file)
@@ -1,16 +1,11 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
 /**
  * 
  * @author Haruaki Tamada 
- * @version $Revision$ 
  */
 public class NullIterator<T> implements Iterator<T>{
     @Override
index fc1be95..72c8697 100644 (file)
@@ -59,7 +59,7 @@ public class Utility{
         if(flag){
             try{
                 JarFile jarfile = new JarFile(pluginFile);
-                JarEntry entry = jarfile.getJarEntry("META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkSpi");
+                JarEntry entry = jarfile.getJarEntry("META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkService");
                 if(entry == null){
                     messages.add("install.error.servicedescriptor.missing");
                     flag = false;
index 159edca..5bdb989 100644 (file)
@@ -1,14 +1,9 @@
 package jp.sourceforge.stigmata.utils;
 
-/*
- * $Id$
- */
-
 /**
  * A rule for checking wellknown class or not.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public final class WellknownClassJudgeRule{
     public enum MatchType{
index c9f297c..5cb89dc 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.utils;
 
-/* 
- * $Id$
- */
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -15,7 +11,6 @@ import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchType;
  * Managing wellknown class checking rule.
  * 
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class WellknownClassManager implements Iterable<WellknownClassJudgeRule>{
     private List<WellknownClassJudgeRule> rules = new ArrayList<WellknownClassJudgeRule>();
index ed97733..3b71d13 100644 (file)
@@ -1,7 +1,3 @@
-<!--\r
-  $Id$\r
--->\r
-\r
 <!ATTLIST birthmark\r
   type  NAME  #REQUIRED\r
   count CDATA #REQUIRED\r
index 5284b97..2c0be00 100644 (file)
 \r
                             Apache License\r
-                        Version 2.0\81A2004\94N1\8c\8e\r
+                        Version 2.0、2004年1月\r
                    http://www.apache.org/licenses/\r
 \r
-\8eg\97p\81A\95¡\90»\81A\82¨\82æ\82Ñ\94Ð\95z\82É\8aÖ\82·\82é\8fð\8d\80\r
-\r
-1. \92è\8b`\r
-\r
-   \81u\83\89\83C\83Z\83\93\83X\81v\82Æ\82Í\81A\82±\82Ì\83h\83L\83\85\83\81\83\93\83g\82Ì\91æ1\8d\80\82©\82ç\91æ9\8d\80\82Ü\82Å\82Å\92è\8b`\82µ\82Ä\82¢\r
-   \82é\81A\8eg\97p\81A\95¡\90»\81A\82¨\82æ\82Ñ\94Ð\95z\82É\8aÖ\82·\82é\8fð\8d\80\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-   \81u\83\89\83C\83Z\83\93\83T\81[\81v\82Æ\82Í\81A\92\98\8dì\8c \8f\8a\97L\8eÒ\81A\82 \82é\82¢\82Í\92\98\8dì\8c \8f\8a\97L\8eÒ\82ª\83\89\83C\83Z\83\93\83X\r
-   \95t\97^\91Î\8fÛ\82Æ\82µ\82Ä\94F\82ß\82½\8eÒ\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-   \81u\96@\90l\81v\82Æ\82Í\81A\8ds\88×\8eÒ\82Æ\81A\8ds\88×\8eÒ\82ð\8aÇ\97\9d\82·\82é\82©\8ds\88×\8eÒ\82É\82æ\82è\8aÇ\97\9d\82³\82ê\82é\82©\8ds\r
-   \88×\8eÒ\8b¤\92Ê\82Ì\8aÇ\97\9d\89º\82É\82 \82é\91¼\82Ì\82·\82×\82Ä\82Ì\8eÒ\82Æ\82©\82ç\90¬\82é\98A\8d\87\91Ì\82ð\8ew\82µ\82Ü\82·\81B\82±\82Ì\r
-   \92è\8b`\82É\82¨\82¯\82é\81u\8aÇ\97\9d\81v\82Æ\82Í\81A(i) \8c_\96ñ\82Ü\82½\82Í\82»\82Ì\91¼\82É\82æ\82è\81A\92¼\90Ú\82Ü\82½\82Í\8aÔ\90Ú\r
-   \93I\82É\82±\82Ì\96@\90l\82Ì\8ew\8aö\81E\8co\89c\82ð\8ds\82¤\8c \8cÀ\81A\82Ü\82½\82Í (ii) \82±\82Ì\96@\90l\82Ì50%\88È\8fã\82Ì\r
-   \8a\94\8e®\82Ì\8f\8a\97L\8c \82Ü\82½\82Í (iii) \8eó\89v\8f\8a\97L\8c \82ð\97L\82·\82é\82±\82Æ\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-   \81u\82 \82È\82½\81v\82Æ\82Í\81A\96{\83\89\83C\83Z\83\93\83X\82É\82æ\82è\95t\97^\82³\82ê\82é\8c \97\98\82ð\8ds\8eg\82·\82é\8cÂ\90l\82Ü\82½\82Í\r
-   \96@\90l\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-   \81u\83\\81[\83X\81v\8c`\8e®\82Æ\82Í\81A\83\\83t\83g\83E\83F\83A\82Ì\83\\81[\83X\83R\81[\83h\81A\83h\83L\83\85\83\81\83\93\83g\83\\81[\83X\81A\r
-   \90Ý\92è\83t\83@\83C\83\8b\82Æ\82¢\82Á\82½\81A\95Ï\8dX\82ð\89Á\82¦\82é\82Ì\82É\8dD\93s\8d\87\82È\8c`\8e®\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-   \81u\83I\83u\83W\83F\83N\83g\81v\8c`\8e®\82Æ\82Í\81A\83R\83\93\83p\83C\83\8b\82³\82ê\82½\83I\83u\83W\83F\83N\83g\83R\81[\83h\81A\90\90¬\82³\r
-   \82ê\82½\83h\83L\83\85\83\81\83\93\83g\81A\91¼\82Ì\83\81\83f\83B\83A\82Ö\82Ì\95Ï\8a·\95¨\82Æ\82¢\82Á\82½\81A\83\\81[\83X\8c`\8e®\82Ì\8b@\8aB\93I\r
-   \82È\95Ï\8a·\82É\82æ\82è\90\82\82é\8c`\8e®\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-   \81u\90¬\89Ê\95¨\81v\82Æ\82Í\81A\83\\81[\83X\8c`\8e®\82Å\82 \82é\82Æ\83I\83u\83W\83F\83N\83g\8c`\8e®\82Å\82 \82é\82Æ\82ð\96â\82í\82¸\81A\r
-   \90»\8dì\95¨\82É\91}\93ü\82Ü\82½\82Í\93Y\95t\82³\82ê\82é\81i\8cã\8fo\82Ì\95t\98^\82É\97á\82ª\82 \82é\81j\92\98\8dì\8c \95\\8e¦\82Å\8e¦\82³\r
-   \82ê\82½\92\98\8dì\95¨\82Å\81A\96{\83\89\83C\83Z\83\93\83X\82É\8aî\82Ã\82¢\82Ä\97\98\97p\82ª\8b\96\82³\82ê\82é\82à\82Ì\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-   \81u\94h\90\90¬\89Ê\95¨\81v\82Æ\82Í\81A\95Ò\8fW\8fã\82Ì\89ü\92ù\81A\92\8d\89ð\81A\90\84\9dÈ\82È\82Ç\81A\90¬\89Ê\95¨\82ð\8aî\82É\82µ\82Ä\82¢\r
-   \82Ä\91S\91Ì\82Æ\82µ\82Ä\83I\83\8a\83W\83i\83\8b\92\98\8dì\95¨\82Æ\8cÄ\82×\82é\82æ\82¤\82È\90»\8dì\95¨\91S\94Ê\82ð\8ew\82µ\82Ü\82·\81B\96{\83\89\r
-   \83C\83Z\83\93\83X\82Å\82Í\81A\90¬\89Ê\95¨\82â\94h\90\90¬\89Ê\95¨\82©\82ç\95ª\97£\82Å\82«\82é\90»\8dì\95¨\82â\81A\90¬\89Ê\95¨\82â\94h\90\r
-   \90¬\89Ê\95¨\82Ì\83C\83\93\83^\83t\83F\81[\83X\82Ö\82Ì\92P\82È\82é\83\8a\83\93\83N\81i\82Ü\82½\82Í\96¼\91O\82É\82æ\82é\83o\83C\83\93\83h\81j\82ð\81A\r
-   \94h\90\90¬\89Ê\95¨\82É\8aÜ\82ß\82Ü\82¹\82ñ\81B\r
-\r
-   \81u\83R\83\93\83g\83\8a\83r\83\85\81[\83V\83\87\83\93\81v\82Æ\82Í\81A\90¬\89Ê\95¨\82Ì\83I\83\8a\83W\83i\83\8b\83o\81[\83W\83\87\83\93\82È\82ç\82Ñ\82É\90¬\r
-   \89Ê\95¨\82Ü\82½\82Í\94h\90\90¬\89Ê\95¨\82Ö\82Ì\95Ï\8dX\82â\92Ç\89Á\82à\8aÜ\82ß\82Ä\81A\92\98\8dì\8c \8f\8a\97L\8eÒ\82 \82é\82¢\82Í\92\98\8dì\r
-   \8c \8f\8a\97L\8eÒ\82ª\94F\82ß\82½\8cÂ\90l\82Ü\82½\82Í\96@\90l\82É\82æ\82é\90¬\89Ê\95¨\82Ö\82Ì\91g\82Ý\8d\9e\82Ý\82ð\88Ó\90}\82µ\82Ä\83\89\83C\r
-   \83Z\83\93\83T\81[\82É\92ñ\8fo\82³\82ê\82é\92\98\8dì\95¨\91S\94Ê\82ð\8ew\82µ\82Ü\82·\81B\82±\82Ì\92è\8b`\82É\82¨\82¯\82é\81u\92ñ\8fo\81v\82Æ\r
-   \82Í\81A\90¬\89Ê\95¨\82ð\98_\82\82½\82è\89ü\97Ç\82·\82é\82½\82ß\82É\83\89\83C\83Z\83\93\83T\81[\82Ü\82½\82Í\82»\82Ì\91ã\97\9d\8eÒ\82É\82æ\82è\r
-   \8aÇ\97\9d\82³\82ê\82é\93d\8eq\93I\83\81\81[\83\8a\83\93\83O\83\8a\83X\83g\81A\83\\81[\83X\83R\81[\83h\8aÇ\97\9d\83V\83X\83e\83\80\81A\96â\91è\92Ç\90Õ\r
-   \83V\83X\83e\83\80\82Æ\82¢\82Á\82½\81A\93d\8eq\93I\95û\96@\81A\8cû\93ª\81A\82Ü\82½\82Í\8f\91\96Ê\82Å\81A\83\89\83C\83Z\83\93\83T\81[\82Ü\82½\82Í\r
-   \82»\82Ì\91ã\97\9d\8eÒ\82É\8fî\95ñ\82ð\91\97\82é\82±\82Æ\82ð\8ew\82µ\82Ü\82·\81B\82½\82¾\82µ\81A\92\98\8dì\8c \8f\8a\97L\8eÒ\82ª\8f\91\96Ê\82Å\r
-   \81u\83R\83\93\83g\83\8a\83r\83\85\81[\83V\83\87\83\93\82Å\82È\82¢\81v\82Æ\96¾\8e¦\82µ\82½\82à\82Ì\82Í\8f\9c\82«\82Ü\82·\81B\r
-\r
-   \81u\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\81v\82Æ\82Í\81A\83\89\83C\83Z\83\93\83T\81[\82¨\82æ\82Ñ\82»\82Ì\91ã\97\9d\82ð\96±\82ß\82é\8cÂ\90l\82Ü\r
-   \82½\82Í\96@\90l\82Å\81A\8e©\95ª\82Ì\83R\83\93\83g\83\8a\83r\83\85\81[\83V\83\87\83\93\82ª\83\89\83C\83Z\83\93\83T\81[\82É\8eó\97Ì\82³\82ê\82Ä\90¬\89Ê\r
-   \95¨\82É\91g\82Ý\8d\9e\82Ü\82ê\82½\8eÒ\82ð\8ew\82µ\82Ü\82·\81B\r
-\r
-2. \92\98\8dì\8c \83\89\83C\83Z\83\93\83X\82Ì\95t\97^\r
-\r
-   \96{\83\89\83C\83Z\83\93\83X\82Ì\8fð\8d\80\82É\8f]\82Á\82Ä\81A\8ae\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82Í\82 \82È\82½\82É\91Î\82µ\81A\83\\81[\r
-   \83X\8c`\8e®\82Å\82 \82ê\83I\83u\83W\83F\83N\83g\8c`\8e®\82Å\82 \82ê\81A\90¬\89Ê\95¨\82¨\82æ\82Ñ\94h\90\90¬\89Ê\95¨\82ð\95¡\90»\82µ\82½\r
-   \82è\81A\94h\90\90¬\89Ê\95¨\82ð\8dì\90¬\82µ\82½\82è\81A\8cö\82É\95\\8e¦\82µ\82½\82è\81A\8cö\82É\8eÀ\8ds\82µ\82½\82è\81A\83T\83u\83\89\83C\r
-   \83Z\83\93\83X\82µ\82½\82è\81A\94Ð\95z\82µ\82½\82è\82·\82é\81A\96³\8aú\8cÀ\82Å\90¢\8aE\8bK\96Í\82Å\94ñ\93Æ\90è\93I\82Å\8eg\97p\97¿\96³\97¿\r
-   \82Å\8eæ\82è\8fÁ\82µ\95s\94\\82È\92\98\8dì\8c \83\89\83C\83Z\83\93\83X\82ð\95t\97^\82µ\82Ü\82·\81B\r
-\r
-3. \93Á\8b\96\83\89\83C\83Z\83\93\83X\82Ì\95t\97^\r
-\r
-   \96{\83\89\83C\83Z\83\93\83X\82Ì\8fð\8d\80\82É\8f]\82Á\82Ä\81A\8ae\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82Í\82 \82È\82½\82É\91Î\82µ\81A\90¬\89Ê\r
-   \95¨\82ð\8dì\90¬\82µ\82½\82è\81A\8eg\97p\82µ\82½\82è\81A\94Ì\94\84\82µ\82½\82è\81A\94Ì\94\84\97p\82É\92ñ\8b\9f\82µ\82½\82è\81A\83C\83\93\83|\81[\r
-   \83g\82µ\82½\82è\81A\82»\82Ì\91¼\82Ì\95û\96@\82Å\88Ú\93]\82µ\82½\82è\82·\82é\81A\96³\8aú\8cÀ\82Å\90¢\8aE\8bK\96Í\82Å\94ñ\93Æ\90è\93I\82Å\r
-   \8eg\97p\97¿\96³\97¿\82Å\8eæ\82è\8fÁ\82µ\95s\94\\82È\81i\82±\82Ì\8d\80\82Å\96¾\8bL\82µ\82½\82à\82Ì\82Í\8f\9c\82­\81j\93Á\8b\96\83\89\83C\83Z\83\93\r
-   \83X\82ð\95t\97^\82µ\82Ü\82·\81B\82½\82¾\82µ\81A\82±\82Ì\82æ\82¤\82È\83\89\83C\83Z\83\93\83X\82Í\81A\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82É\r
-   \82æ\82Á\82Ä\83\89\83C\83Z\83\93\83X\89Â\94\\82È\93Á\8b\96\90\\90¿\82Ì\82¤\82¿\81A\93\96\8aY\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82Ì\83R\83\93\83g\r
-   \83\8a\83r\83\85\81[\83V\83\87\83\93\82ð\92P\93Æ\82Ü\82½\82Í\8aY\93\96\82·\82é\90¬\89Ê\95¨\82Æ\91g\82Ý\8d\87\82í\82¹\82Ä\97p\82¢\82é\82±\82Æ\82Å\95K\r
-   \91R\93I\82É\90N\8aQ\82³\82ê\82é\82à\82Ì\82É\82Ì\82Ý\93K\97p\82³\82ê\82Ü\82·\81B\82 \82È\82½\82ª\92N\82©\82É\91Î\82µ\81A\8cð\8d·\90¿\8b\81\r
-   \82â\94½\91i\82ð\8aÜ\82ß\82Ä\81A\90¬\89Ê\95¨\82 \82é\82¢\82Í\90¬\89Ê\95¨\82É\91g\82Ý\8d\9e\82Ü\82ê\82½\83R\83\93\83g\83\8a\83r\83\85\81[\83V\83\87\r
-   \83\93\82ª\92¼\90Ú\82Ü\82½\82Í\8aÔ\90Ú\93I\82È\93Á\8b\96\90N\8aQ\82É\93\96\82½\82é\82Æ\82µ\82Ä\93Á\8b\96\91i\8f×\82ð\8bN\82±\82µ\82½\8fê\8d\87\81A\r
-   \96{\83\89\83C\83Z\83\93\83X\82É\8aî\82Ã\82¢\82Ä\82 \82È\82½\82É\95t\97^\82³\82ê\82½\93Á\8b\96\83\89\83C\83Z\83\93\83X\82Í\81A\82»\82¤\82µ\82½\91i\r
-   \8f×\82ª\90³\8e®\82É\8bN\82±\82³\82ê\82½\8e\9e\93_\82Å\8fI\97¹\82·\82é\82à\82Ì\82Æ\82µ\82Ü\82·\81B\r
-\r
-4. \8dÄ\94Ð\95z\r
-\r
-   \82 \82È\82½\82Í\81A\83\\81[\83X\8c`\8e®\82Å\82 \82ê\83I\83u\83W\83F\83N\83g\8c`\8e®\82Å\82 \82ê\81A\95Ï\8dX\82Ì\97L\96³\82É\8aÖ\82í\82ç\r
-   \82¸\81A\88È\89º\82Ì\8fð\8c\8f\82ð\82·\82×\82Ä\96\9e\82½\82·\8cÀ\82è\82É\82¨\82¢\82Ä\81A\90¬\89Ê\95¨\82Ü\82½\82Í\82»\82Ì\94h\90\90¬\89Ê\95¨\r
-   \82Ì\83R\83s\81[\82ð\95¡\90»\82µ\82½\82è\94Ð\95z\82µ\82½\82è\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\r
-\r
-   1. \90¬\89Ê\95¨\82Ü\82½\82Í\94h\90\90¬\89Ê\95¨\82Ì\91¼\82Ì\8eó\97Ì\8eÒ\82É\96{\83\89\83C\83Z\83\93\83X\82Ì\83R\83s\81[\82à\93n\82·\82±\82Æ\81B\r
-\r
-   2. \95Ï\8dX\82ð\89Á\82¦\82½\83t\83@\83C\83\8b\82É\82Â\82¢\82Ä\82Í\81A\82 \82È\82½\82ª\95Ï\8dX\82µ\82½\82Æ\82¢\82¤\82±\82Æ\82ª\82æ\82­\r
-      \82í\82©\82é\82æ\82¤\82È\8d\90\92m\82ð\93ü\82ê\82é\82±\82Æ\81B\r
-\r
-   3. \83\\81[\83X\8c`\8e®\82Ì\94h\90\90¬\89Ê\95¨\82ð\94Ð\95z\82·\82é\8fê\8d\87\82Í\81A\83\\81[\83X\8c`\8e®\82Ì\90¬\89Ê\95¨\82É\8aÜ\82Ü\r
-      \82ê\82Ä\82¢\82é\92\98\8dì\8c \81A\93Á\8b\96\81A\8f¤\95W\81A\82¨\82æ\82Ñ\8bA\91®\82É\82Â\82¢\82Ä\82Ì\8d\90\92m\82ð\81A\94h\90\90¬\89Ê\r
-      \95¨\82Ì\82Ç\82±\82É\82à\8aÖ\8cW\82µ\82È\82¢\82à\82Ì\82Í\8f\9c\82¢\82Ä\81A\82·\82×\82Ä\94h\90\90¬\89Ê\95¨\82É\93ü\82ê\82é\82±\82Æ\81B\r
-      4. \90¬\89Ê\95¨\82Ì\88ê\95\94\82Æ\82µ\82Ä\81uNOTICE\81v\82É\91\8a\93\96\82·\82é\83e\83L\83X\83g\83t\83@\83C\83\8b\82ª\8aÜ\82Ü\82ê\r
-      \82Ä\82¢\82é\8fê\8d\87\82Í\81A\82»\82¤\82µ\82½NOTICE\83t\83@\83C\83\8b\82É\8aÜ\82Ü\82ê\82Ä\82¢\82é\8bA\91®\8d\90\92m\82Ì\83R\83s\81[\r
-      \82ð\81A\94h\90\90¬\89Ê\95¨\82Ì\82Ç\82±\82É\82à\8aÖ\8cW\82µ\82È\82¢\82à\82Ì\82Í\8f\9c\82¢\82Ä\81A\94Ð\95z\82·\82é\94h\90\90¬\89Ê\r
-      \95¨\82É\93ü\82ê\82é\82±\82Æ\81B\82»\82Ì\8dÛ\81A\8e\9f\82Ì\82¤\82¿\82Ì\8f­\82È\82­\82Æ\82à1\89Ó\8f\8a\82É\91}\93ü\82·\82é\82±\82Æ\81B\r
-      (i) \94h\90\90¬\89Ê\95¨\82Ì\88ê\95\94\82Æ\82µ\82Ä\94Ð\95z\82·\82éNOTICE\83e\83L\83X\83g\83t\83@\83C\83\8b\81A(ii) \83\\81[\r
-      \83X\8c`\8e®\82Ü\82½\82Í\83h\83L\83\85\83\81\83\93\83g\81i\94h\90\90¬\89Ê\95¨\82Æ\8b¤\82É\83h\83L\83\85\83\81\83\93\83g\82ð\94Ð\95z\82·\82é\r
-      \8fê\8d\87\81j\81A(iii) \94h\90\90¬\89Ê\95¨\82É\82æ\82Á\82Ä\90\90¬\82³\82ê\82é\95\\8e¦\81i\82±\82¤\82µ\82½\91æ\8eO\8eÒ\8d\90\r
-      \92m\82ð\90·\82è\8d\9e\82Þ\82±\82Æ\82ª\95W\8f\80\93I\82È\82â\82è\95û\82É\82È\82Á\82Ä\82¢\82é\8fê\8d\87\81j\81BNOTICE\83t\83@\83C\r
-      \83\8b\82Ì\93à\97e\82Í\82 \82­\82Ü\82Å\8fî\95ñ\93`\92B\97p\82Å\82 \82Á\82Ä\81A\96{\83\89\83C\83Z\83\93\83X\82ð\8fC\90³\82·\82é\82à\82Ì\r
-      \82Å\82 \82Á\82Ä\82Í\82È\82è\82Ü\82¹\82ñ\81B\82 \82È\82½\82Í\94Ð\95z\82·\82é\94h\90\90¬\89Ê\95¨\82É\8e©\95ª\82Ì\8bA\91®\8d\90\92m\r
-      \82ð\81i\90¬\89Ê\95¨\82©\82ç\82ÌNOTICE\83e\83L\83X\83g\82É\95À\82×\82Ä\81A\82Ü\82½\82Í\82»\82Ì\95t\98^\82Æ\82µ\82Ä\81j\92Ç\r
-      \89Á\82Å\82«\82Ü\82·\82ª\81A\82±\82ê\82Í\82»\82¤\82µ\82½\92Ç\89Á\82Ì\8bA\91®\8d\90\92m\82ª\96{\83\89\83C\83Z\83\93\83X\82Ì\8fC\90³\82Æ\r
-      \89ð\8eß\82³\82ê\82é\82¨\82»\82ê\82ª\82È\82¢\8fê\8d\87\82É\8cÀ\82ç\82ê\82Ü\82·\81B\r
-\r
-   \82 \82È\82½\82Í\8e©\95ª\82Ì\8fC\90³\95¨\82É\8e©\82ç\82Ì\92\98\8dì\8c \95\\8e¦\82ð\92Ç\89Á\82·\82é\82±\82Æ\82ª\82Å\82«\81A\8e©\95ª\82Ì\8fC\r
-   \90³\95¨\82Ì\8eg\97p\81A\95¡\90»\81A\82Ü\82½\82Í\94Ð\95z\82É\82Â\82¢\82Ä\81A\82 \82é\82¢\82Í\82»\82¤\82µ\82½\94h\90\90¬\89Ê\95¨\82Ì\91S\r
-   \91Ì\82É\82Â\82¢\82Ä\81A\95t\89Á\93I\82È\83\89\83C\83Z\83\93\83X\8fð\8d\80\82Ü\82½\82Í\88Ù\82È\82é\83\89\83C\83Z\83\93\83X\8fð\8d\80\82ð\90Ý\82¯\82é\r
-   \82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\82½\82¾\82µ\81A\82±\82ê\82Í\90¬\89Ê\95¨\82É\82Â\82¢\82Ä\82Ì\82 \82È\82½\82Ì\8eg\97p\81A\95¡\90»\81A\82¨\r
-   \82æ\82Ñ\94Ð\95z\82ª\81A\82»\82ê\88È\8aO\82Ì\93_\82Å\96{\83\89\83C\83Z\83\93\83X\82Ì\8fð\8d\80\82É\8f]\82Á\82Ä\82¢\82é\8fê\8d\87\82É\8cÀ\82ç\82ê\r
-   \82Ü\82·\81B\r
-\r
-5. \83R\83\93\83g\83\8a\83r\83\85\81[\83V\83\87\83\93\82Ì\92ñ\8fo\r
-\r
-   \93Á\82É\92f\82è\82ª\82È\82¢\8cÀ\82è\81A\82 \82È\82½\82ª\90¬\89Ê\95¨\82Ö\82Ì\91g\82Ý\8d\9e\82Ý\82ð\88Ó\90}\82µ\82Ä\83\89\83C\83Z\83\93\83T\81[\r
-   \82É\92ñ\8fo\82µ\82½\83R\83\93\83g\83\8a\83r\83\85\81[\83V\83\87\83\93\82Í\81A\95t\89Á\93I\82È\8fð\8d\80\82ª\82È\82¯\82ê\82Î\81A\96{\83\89\83C\83Z\83\93\r
-   \83X\82Ì\8fð\8d\80\82É\8f]\82¤\82à\82Ì\82Æ\82µ\82Ü\82·\81B\8fã\8fq\82Ì\8bK\92è\82É\82©\82©\82í\82ç\82¸\81A\82»\82¤\82µ\82½\83R\83\93\83g\83\8a\r
-   \83r\83\85\81[\83V\83\87\83\93\82É\8aÖ\82µ\82Ä\82 \82È\82½\82ª\83\89\83C\83Z\83\93\83T\81[\82Æ\8c\8b\82ñ\82¾\82©\82à\82µ\82ê\82È\82¢\95Ê\82Ì\83\89\83C\r
-   \83Z\83\93\83X\8c_\96ñ\82Ì\8fð\8d\80\82ð\81A\82±\82±\82Å\96³\8cø\82É\82µ\82½\82è\8fC\90³\82µ\82½\82è\82·\82é\82±\82Æ\82Í\82 \82è\82Ü\82¹\82ñ\81B\r
-\r
-6. \8f¤\95W\r
-\r
-   \96{\83\89\83C\83Z\83\93\83X\82Å\82Í\81A\90¬\89Ê\95¨\82Ì\8fo\8f\8a\82ð\8bL\8fq\82µ\82½\82èNOTICE\83t\83@\83C\83\8b\82Ì\93à\97e\82ð\95¡\90»\r
-   \82·\82é\82Æ\82«\82É\95K\97v\82É\82È\82é\91Ã\93\96\82Å\8aµ\8fK\93I\82È\8eg\82¢\95û\82Í\95Ê\82Æ\82µ\82Ä\81A\83\89\83C\83Z\83\93\83T\81[\82Ì\8f¤\r
-   \8d\86\81A\8f¤\95W\81A\83T\81[\83r\83X\83}\81[\83N\81A\82Ü\82½\82Í\90»\95i\96¼\82Ì\8eg\97p\8c \82ð\95t\97^\82µ\82Ü\82¹\82ñ\81B\r
-\r
-7. \95Û\8fØ\82Ì\94Û\94F\r
-\r
-   \93K\97p\82³\82ê\82é\96@\97¥\82Ü\82½\82Í\8f\91\96Ê\82Å\82Ì\93¯\88Ó\82É\82æ\82Á\82Ä\96½\82\82ç\82ê\82È\82¢\8cÀ\82è\81A\83\89\83C\83Z\83\93\83T\81[\r
-   \82Í\90¬\89Ê\95¨\82ð\81i\82»\82µ\82Ä\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82Í\8ae\8e©\82Ì\83R\83\93\83g\83\8a\83r\83\85\81[\83V\83\87\83\93\82ð\81j\r
-   \81u\8c»\8fó\82Ì\82Ü\82Ü\81v\92ñ\8b\9f\82·\82é\82à\82Ì\82Æ\82µ\81A\96¾\8e¦\96Ù\8e¦\82ð\96â\82í\82¸\81A\83^\83C\83g\83\8b\81A\94ñ\90N\8aQ\90«\81A\r
-   \8f¤\8bÆ\93I\82È\8eg\97p\89Â\94\\90«\81A\82¨\82æ\82Ñ\93Á\92è\82Ì\96Ú\93I\82É\91Î\82·\82é\93K\8d\87\90«\82ð\8aÜ\82ß\81A\82¢\82©\82È\82é\95Û\r
-   \8fØ\82à\8fð\8c\8f\82à\92ñ\8b\9f\82µ\82Ü\82¹\82ñ\81B\82 \82È\82½\82Í\90¬\89Ê\95¨\82Ì\8eg\97p\82â\8dÄ\94Ð\95z\82Ì\93K\90Ø\90«\82ð\8e©\95ª\82Å\r
-   \94»\92f\82·\82é\90Ó\94C\82ð\8e\9d\82Â\82Æ\8b¤\82É\81A\96{\83\89\83C\83Z\83\93\83X\82É\82æ\82è\95t\97^\82³\82ê\82é\8c \97\98\82ð\8ds\8eg\82·\82é\r
-   \82±\82Æ\82É\94º\82¤\82·\82×\82Ä\82Ì\83\8a\83X\83N\82ð\95\89\82¤\82±\82Æ\82É\82È\82è\82Ü\82·\81B\r
-\r
-8. \90Ó\94C\82Ì\90§\8cÀ\r
-\r
-   \82¢\82©\82È\82é\8fð\8c\8f\82¨\82æ\82Ñ\96@\97\9d\98_\82É\82¨\82¢\82Ä\82à\81A\95s\96@\8ds\88×\81i\89ß\8e¸\82ð\8aÜ\82Þ\81j\81A\8c_\96ñ\81A\82Ü\r
-   \82½\82Í\82»\82Ì\91¼\82¢\82©\82È\82é\8fê\8d\87\82Å\82à\81A\93K\97p\82³\82ê\82é\96@\97¥\82Ü\82½\82Í\8f\91\96Ê\82Å\82Ì\93¯\88Ó\82É\82æ\82Á\82Ä\r
-   \96½\82\82ç\82ê\82È\82¢\8cÀ\82è\81A\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82Í\96{\83\89\83C\83Z\83\93\83X\82Ü\82½\82Í\90¬\89Ê\95¨\82Ì\8eg\82¢\r
-   \95û\82É\8aÖ\98A\82µ\82Ä\90\82\82é\92¼\90Ú\91¹\8aQ\81A\8aÔ\90Ú\91¹\8aQ\81A\8bô\94­\93I\82È\91¹\8aQ\81A\93Á\95Ê\91¹\8aQ\81A\92¦\94±\93I\r
-   \91¹\8aQ\81A\82Ü\82½\82Í\8c\8b\89Ê\91¹\8aQ\82ð\8aÜ\82ß\81A\89c\8bÆ\8c \82Ì\91¹\8e¸\81A\8bÆ\96±\82Ì\92â\8e~\81A\83R\83\93\83s\83\85\81[\83^\81[\r
-   \8fá\8aQ\82Ü\82½\82Í\8cë\8dì\93®\81A\82»\82Ì\91¼\82Ì\8f¤\8bÆ\8fã\82Ì\91¹\8aQ\82â\91¹\8e¸\82È\82Ç\81A\82¢\82©\82È\82é\91¹\8aQ\82É\91Î\82µ\r
-   \82Ä\82à\81A\82½\82Æ\82¦\82»\82¤\82µ\82½\91¹\8aQ\82Ì\89Â\94\\90«\82ð\82½\82Æ\82¦\92m\82ç\82³\82ê\82Ä\82¢\82½\82Æ\82µ\82Ä\82à\81A\82 \82È\r
-   \82½\82É\90Ó\94C\82ð\95\89\82í\82È\82¢\82à\82Ì\82Æ\82µ\82Ü\82·\81B\r
-\r
-9. \95Û\8fØ\82Ü\82½\82Í\92Ç\89Á\93I\90Ó\94C\82Ì\88ø\82«\8eó\82¯\r
-\r
-   \90¬\89Ê\95¨\82Ü\82½\82Í\82»\82Ì\94h\90\90¬\89Ê\95¨\82ð\8dÄ\94Ð\95z\82·\82é\8dÛ\81A\82 \82È\82½\82Í\83T\83|\81[\83g\81A\95Û\8fØ\81A\91¹\r
-   \8aQ\95â\8f\9e\81A\82Ü\82½\82Í\82»\82Ì\91¼\82Ì\90Ó\94C\82â\81A\96{\83\89\83C\83Z\83\93\83X\82É\96µ\8f\82\82µ\82È\82¢\8c \97\98\82ð\92ñ\8e¦\82µ\81A\r
-   \82±\82ê\82ð\97L\97¿\82É\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81B\82½\82¾\82µ\81A\82»\82¤\82µ\82½\90Ó\94C\82ð\88ø\82«\8eó\82¯\82é\8fê\8d\87\81A\r
-   \82 \82È\82½\82Í\82»\82ê\82ð\8e©\95ª\8e©\90g\82Ì\82½\82ß\82É\82¾\82¯\8e©\8cÈ\90Ó\94C\82Æ\82µ\82Ä\8ds\82¦\82é\82Ì\82Å\82 \82Á\82Ä\81A\91¼\r
-   \82Ì\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82Ì\82½\82ß\82É\8ds\82¤\82±\82Æ\82Í\82Å\82«\82Ü\82¹\82ñ\81B\82Ü\82½\81A\82 \82È\82½\82Í\82»\82¤\r
-   \82µ\82½\95Û\8fØ\82â\92Ç\89Á\93I\90Ó\94C\82Ì\82¹\82¢\82Å\91¼\82Ì\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82É\90Ó\94C\82ª\8d~\82è\82©\82©\82Á\r
-   \82½\82è\94\85\8f\9e\97v\8b\81\82ª\8fo\82³\82ê\82½\82Æ\82µ\82Ä\82à\81A\82»\82ê\82ç\82Ì\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82É\91¹\8aQ\82ª\8by\r
-   \82Ô\82Ì\82ð\96h\82®\82Æ\8b¤\82É\8ae\83R\83\93\83g\83\8a\83r\83\85\81[\83^\81[\82Ì\91¹\8aQ\82ð\95â\8f\9e\82·\82é\82±\82Æ\82É\93¯\88Ó\82µ\82È\82¯\r
-   \82ê\82Î\82È\82è\82Ü\82¹\82ñ\81B\r
-\r
-\8eg\97p\81A\95¡\90»\81A\82¨\82æ\82Ñ\94Ð\95z\82É\8aÖ\82·\82é\8fð\8d\80\82Ì\8fI\82í\82è\r
-\r
-\95t\98^\81F Apache License\82Ì\93K\97p\82Ì\8ed\95û\r
-\r
-   \82 \82È\82½\82Ì\90»\8dì\95¨\82ÉApache License\82ð\93K\97p\82·\82é\82Æ\82«\82Í\81A\8e\9f\82Ì\92è\8c^\95\82ð\93Y\95t\82µ\82Ä\r
-   \82­\82¾\82³\82¢\81B\82½\82¾\82µ\81A"[]"\82Å\88Í\82Ü\82ê\82Ä\82¢\82é\95\94\95ª\82Í\81A\82 \82È\82½\8e©\90g\82Ì\8e¯\95Ê\8fî\95ñ\82É\92u\r
-   \82«\8a·\82¦\82Ä\82­\82¾\82³\82¢\81i\82»\82Ì\8dÛ\81A\8ap\8a\87\8cÊ\82Í\8eæ\82è\8f\9c\82«\82Ü\82·\81j\81B\82Ü\82½\81A\82±\82Ì\95\8c¾\82ð\8aY\r
-   \93\96\82·\82é\83t\83@\83C\83\8b\8c`\8e®\82É\8d\87\82Á\82½\83R\83\81\83\93\83g\8d\\95\82Å\88Í\82ñ\82Å\82­\82¾\82³\82¢\81B\82³\82ç\82É\81A\91æ\8eO\r
-   \8eÒ\83A\81[\83J\83C\83u\93à\82Å\82Ì\8e¯\95Ê\82ð\97e\88Õ\82É\82·\82é\82½\82ß\81A\83t\83@\83C\83\8b\96¼\82Ü\82½\82Í\83N\83\89\83X\96¼\82È\82ç\r
-   \82Ñ\82É\8eï\8e|\90à\96¾\82ª\92\98\8dì\8c \95\\8e¦\82Æ\93¯\82\81u\88ó\8dü\83y\81[\83W\81v\82É\8c»\82ê\82é\82æ\82¤\82É\82·\82é\82±\82Æ\82ð\r
-   \82¨\8a©\82ß\82µ\82Ü\82·\81B\r
-\r
-       Copyright [yyyy] [\92\98\8dì\8c \8f\8a\97L\8eÒ\82Ì\96¼\91O]\r
-\r
-      Apache License Version 2.0\81i\81u\96{\83\89\83C\83Z\83\93\83X\81v\81j\82É\8aî\82Ã\82¢\82Ä\83\89\83C\83Z\83\93\r
-      \83X\82³\82ê\82Ü\82·\81B\82 \82È\82½\82ª\82±\82Ì\83t\83@\83C\83\8b\82ð\8eg\97p\82·\82é\82½\82ß\82É\82Í\81A\96{\83\89\83C\83Z\83\93\83X\r
-      \82É\8f]\82í\82È\82¯\82ê\82Î\82È\82è\82Ü\82¹\82ñ\81B\96{\83\89\83C\83Z\83\93\83X\82Ì\83R\83s\81[\82Í\89º\8bL\82Ì\8fê\8f\8a\82©\82ç\93ü\r
-      \8eè\82Å\82«\82Ü\82·\81B\r
+使用、複製、および頒布に関する条項\r
+\r
+1. 定義\r
+\r
+   「ライセンス」とは、このドキュメントの第1項から第9項までで定義してい\r
+   る、使用、複製、および頒布に関する条項を指します。\r
+\r
+   「ライセンサー」とは、著作権所有者、あるいは著作権所有者がライセンス\r
+   付与対象として認めた者を指します。\r
+\r
+   「法人」とは、行為者と、行為者を管理するか行為者により管理されるか行\r
+   為者共通の管理下にある他のすべての者とから成る連合体を指します。この\r
+   定義における「管理」とは、(i) 契約またはその他により、直接または間接\r
+   的にこの法人の指揮・経営を行う権限、または (ii) この法人の50%以上の\r
+   株式の所有権または (iii) 受益所有権を有することを指します。\r
+\r
+   「あなた」とは、本ライセンスにより付与される権利を行使する個人または\r
+   法人を指します。\r
+\r
+   「ソース」形式とは、ソフトウェアのソースコード、ドキュメントソース、\r
+   設定ファイルといった、変更を加えるのに好都合な形式を指します。\r
+\r
+   「オブジェクト」形式とは、コンパイルされたオブジェクトコード、生成さ\r
+   れたドキュメント、他のメディアへの変換物といった、ソース形式の機械的\r
+   な変換により生じる形式を指します。\r
+\r
+   「成果物」とは、ソース形式であるとオブジェクト形式であるとを問わず、\r
+   製作物に挿入または添付される(後出の付録に例がある)著作権表示で示さ\r
+   れた著作物で、本ライセンスに基づいて利用が許されるものを指します。\r
+\r
+   「派生成果物」とは、編集上の改訂、注解、推敲など、成果物を基にしてい\r
+   て全体としてオリジナル著作物と呼べるような製作物全般を指します。本ラ\r
+   イセンスでは、成果物や派生成果物から分離できる製作物や、成果物や派生\r
+   成果物のインタフェースへの単なるリンク(または名前によるバインド)を、\r
+   派生成果物に含めません。\r
+\r
+   「コントリビューション」とは、成果物のオリジナルバージョンならびに成\r
+   果物または派生成果物への変更や追加も含めて、著作権所有者あるいは著作\r
+   権所有者が認めた個人または法人による成果物への組み込みを意図してライ\r
+   センサーに提出される著作物全般を指します。この定義における「提出」と\r
+   は、成果物を論じたり改良するためにライセンサーまたはその代理者により\r
+   管理される電子的メーリングリスト、ソースコード管理システム、問題追跡\r
+   システムといった、電子的方法、口頭、または書面で、ライセンサーまたは\r
+   その代理者に情報を送ることを指します。ただし、著作権所有者が書面で\r
+   「コントリビューションでない」と明示したものは除きます。\r
+\r
+   「コントリビューター」とは、ライセンサーおよびその代理を務める個人ま\r
+   たは法人で、自分のコントリビューションがライセンサーに受領されて成果\r
+   物に組み込まれた者を指します。\r
+\r
+2. 著作権ライセンスの付与\r
+\r
+   本ライセンスの条項に従って、各コントリビューターはあなたに対し、ソー\r
+   ス形式であれオブジェクト形式であれ、成果物および派生成果物を複製した\r
+   り、派生成果物を作成したり、公に表示したり、公に実行したり、サブライ\r
+   センスしたり、頒布したりする、無期限で世界規模で非独占的で使用料無料\r
+   で取り消し不能な著作権ライセンスを付与します。\r
+\r
+3. 特許ライセンスの付与\r
+\r
+   本ライセンスの条項に従って、各コントリビューターはあなたに対し、成果\r
+   物を作成したり、使用したり、販売したり、販売用に提供したり、インポー\r
+   トしたり、その他の方法で移転したりする、無期限で世界規模で非独占的で\r
+   使用料無料で取り消し不能な(この項で明記したものは除く)特許ライセン\r
+   スを付与します。ただし、このようなライセンスは、コントリビューターに\r
+   よってライセンス可能な特許申請のうち、当該コントリビューターのコント\r
+   リビューションを単独または該当する成果物と組み合わせて用いることで必\r
+   然的に侵害されるものにのみ適用されます。あなたが誰かに対し、交差請求\r
+   や反訴を含めて、成果物あるいは成果物に組み込まれたコントリビューショ\r
+   ンが直接または間接的な特許侵害に当たるとして特許訴訟を起こした場合、\r
+   本ライセンスに基づいてあなたに付与された特許ライセンスは、そうした訴\r
+   訟が正式に起こされた時点で終了するものとします。\r
+\r
+4. 再頒布\r
+\r
+   あなたは、ソース形式であれオブジェクト形式であれ、変更の有無に関わら\r
+   ず、以下の条件をすべて満たす限りにおいて、成果物またはその派生成果物\r
+   のコピーを複製したり頒布したりすることができます。\r
+\r
+   1. 成果物または派生成果物の他の受領者に本ライセンスのコピーも渡すこと。\r
+\r
+   2. 変更を加えたファイルについては、あなたが変更したということがよく\r
+      わかるような告知を入れること。\r
+\r
+   3. ソース形式の派生成果物を頒布する場合は、ソース形式の成果物に含ま\r
+      れている著作権、特許、商標、および帰属についての告知を、派生成果\r
+      物のどこにも関係しないものは除いて、すべて派生成果物に入れること。\r
+      4. 成果物の一部として「NOTICE」に相当するテキストファイルが含まれ\r
+      ている場合は、そうしたNOTICEファイルに含まれている帰属告知のコピー\r
+      を、派生成果物のどこにも関係しないものは除いて、頒布する派生成果\r
+      物に入れること。その際、次のうちの少なくとも1箇所に挿入すること。\r
+      (i) 派生成果物の一部として頒布するNOTICEテキストファイル、(ii) ソー\r
+      ス形式またはドキュメント(派生成果物と共にドキュメントを頒布する\r
+      場合)、(iii) 派生成果物によって生成される表示(こうした第三者告\r
+      知を盛り込むことが標準的なやり方になっている場合)。NOTICEファイ\r
+      ルの内容はあくまで情報伝達用であって、本ライセンスを修正するもの\r
+      であってはなりません。あなたは頒布する派生成果物に自分の帰属告知\r
+      を(成果物からのNOTICEテキストに並べて、またはその付録として)追\r
+      加できますが、これはそうした追加の帰属告知が本ライセンスの修正と\r
+      解釈されるおそれがない場合に限られます。\r
+\r
+   あなたは自分の修正物に自らの著作権表示を追加することができ、自分の修\r
+   正物の使用、複製、または頒布について、あるいはそうした派生成果物の全\r
+   体について、付加的なライセンス条項または異なるライセンス条項を設ける\r
+   ことができます。ただし、これは成果物についてのあなたの使用、複製、お\r
+   よび頒布が、それ以外の点で本ライセンスの条項に従っている場合に限られ\r
+   ます。\r
+\r
+5. コントリビューションの提出\r
+\r
+   特に断りがない限り、あなたが成果物への組み込みを意図してライセンサー\r
+   に提出したコントリビューションは、付加的な条項がなければ、本ライセン\r
+   スの条項に従うものとします。上述の規定にかかわらず、そうしたコントリ\r
+   ビューションに関してあなたがライセンサーと結んだかもしれない別のライ\r
+   センス契約の条項を、ここで無効にしたり修正したりすることはありません。\r
+\r
+6. 商標\r
+\r
+   本ライセンスでは、成果物の出所を記述したりNOTICEファイルの内容を複製\r
+   するときに必要になる妥当で慣習的な使い方は別として、ライセンサーの商\r
+   号、商標、サービスマーク、または製品名の使用権を付与しません。\r
+\r
+7. 保証の否認\r
+\r
+   適用される法律または書面での同意によって命じられない限り、ライセンサー\r
+   は成果物を(そしてコントリビューターは各自のコントリビューションを)\r
+   「現状のまま」提供するものとし、明示黙示を問わず、タイトル、非侵害性、\r
+   商業的な使用可能性、および特定の目的に対する適合性を含め、いかなる保\r
+   証も条件も提供しません。あなたは成果物の使用や再頒布の適切性を自分で\r
+   判断する責任を持つと共に、本ライセンスにより付与される権利を行使する\r
+   ことに伴うすべてのリスクを負うことになります。\r
+\r
+8. 責任の制限\r
+\r
+   いかなる条件および法理論においても、不法行為(過失を含む)、契約、ま\r
+   たはその他いかなる場合でも、適用される法律または書面での同意によって\r
+   命じられない限り、コントリビューターは本ライセンスまたは成果物の使い\r
+   方に関連して生じる直接損害、間接損害、偶発的な損害、特別損害、懲罰的\r
+   損害、または結果損害を含め、営業権の損失、業務の停止、コンピューター\r
+   障害または誤作動、その他の商業上の損害や損失など、いかなる損害に対し\r
+   ても、たとえそうした損害の可能性をたとえ知らされていたとしても、あな\r
+   たに責任を負わないものとします。\r
+\r
+9. 保証または追加的責任の引き受け\r
+\r
+   成果物またはその派生成果物を再頒布する際、あなたはサポート、保証、損\r
+   害補償、またはその他の責任や、本ライセンスに矛盾しない権利を提示し、\r
+   これを有料にすることができます。ただし、そうした責任を引き受ける場合、\r
+   あなたはそれを自分自身のためにだけ自己責任として行えるのであって、他\r
+   のコントリビューターのために行うことはできません。また、あなたはそう\r
+   した保証や追加的責任のせいで他のコントリビューターに責任が降りかかっ\r
+   たり賠償要求が出されたとしても、それらのコントリビューターに損害が及\r
+   ぶのを防ぐと共に各コントリビューターの損害を補償することに同意しなけ\r
+   ればなりません。\r
+\r
+使用、複製、および頒布に関する条項の終わり\r
+\r
+付録: Apache Licenseの適用の仕方\r
+\r
+   あなたの製作物にApache Licenseを適用するときは、次の定型文を添付して\r
+   ください。ただし、"[]"で囲まれている部分は、あなた自身の識別情報に置\r
+   き換えてください(その際、角括弧は取り除きます)。また、この文言を該\r
+   当するファイル形式に合ったコメント構文で囲んでください。さらに、第三\r
+   者アーカイブ内での識別を容易にするため、ファイル名またはクラス名なら\r
+   びに趣旨説明が著作権表示と同じ「印刷ページ」に現れるようにすることを\r
+   お勧めします。\r
+\r
+       Copyright [yyyy] [著作権所有者の名前]\r
+\r
+      Apache License Version 2.0(「本ライセンス」)に基づいてライセン\r
+      スされます。あなたがこのファイルを使用するためには、本ライセンス\r
+      に従わなければなりません。本ライセンスのコピーは下記の場所から入\r
+      手できます。\r
 \r
       http://www.apache.org/licenses/LICENSE-2.0\r
 \r
-      \93K\97p\82³\82ê\82é\96@\97¥\82Ü\82½\82Í\8f\91\96Ê\82Å\82Ì\93¯\88Ó\82É\82æ\82Á\82Ä\96½\82\82ç\82ê\82È\82¢\8cÀ\82è\81A\96{\83\89\83C\r
-      \83Z\83\93\83X\82É\8aî\82Ã\82¢\82Ä\94Ð\95z\82³\82ê\82é\83\\83t\83g\83E\83F\83A\82Í\81A\96¾\8e¦\96Ù\8e¦\82ð\96â\82í\82¸\81A\82¢\82©\r
-      \82È\82é\95Û\8fØ\82à\8fð\8c\8f\82à\82È\82µ\82É\81u\8c»\8fó\82Ì\82Ü\82Ü\81v\94Ð\95z\82³\82ê\82Ü\82·\81B\96{\83\89\83C\83Z\83\93\83X\82Å\r
-      \82Ì\8c \97\98\82Æ\90§\8cÀ\82ð\8bK\92è\82µ\82½\95\8c¾\82É\82Â\82¢\82Ä\82Í\81A\96{\83\89\83C\83Z\83\93\83X\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\r
-      \82³\82¢\81B
\ No newline at end of file
+      適用される法律または書面での同意によって命じられない限り、本ライ\r
+      センスに基づいて頒布されるソフトウェアは、明示黙示を問わず、いか\r
+      なる保証も条件もなしに「現状のまま」頒布されます。本ライセンスで\r
+      の権利と制限を規定した文言については、本ライセンスを参照してくだ\r
+      さい。
\ No newline at end of file
diff --git a/src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkExtractorService b/src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkExtractorService
new file mode 100644 (file)
index 0000000..7338e1a
--- /dev/null
@@ -0,0 +1,6 @@
+jp.sourceforge.stigmata.birthmarks.cvfv.ConstantValueOfFieldVariableBirthmarkExtractorService
+jp.sourceforge.stigmata.birthmarks.is.InheritanceStructureBirthmarkExtractorService
+jp.sourceforge.stigmata.birthmarks.smc.SequentialMethodCallBirthmarkExtractorService
+jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkExtractorService
+jp.sourceforge.stigmata.birthmarks.fmc.FrequencyMethodCallBirthmarkExtractorService
+jp.sourceforge.stigmata.birthmarks.fuc.FrequencyUsedClassesBirthmarkExtractorService
diff --git a/src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkExtractorSpi b/src/main/resources/META-INF/services/jp.sourceforge.stigmata.spi.BirthmarkExtractorSpi
deleted file mode 100644 (file)
index a9dd8e0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-jp.sourceforge.stigmata.birthmarks.extractors.ConstantValueOfFieldVariableBirthmarkExtractorService
-jp.sourceforge.stigmata.birthmarks.extractors.InheritanceStructureBirthmarkExtractorService
-jp.sourceforge.stigmata.birthmarks.extractors.SequentialMethodCallBirthmarkExtractorService
-jp.sourceforge.stigmata.birthmarks.extractors.UsedClassesBirthmarkExtractorService
-jp.sourceforge.stigmata.birthmarks.extractors.KGramBasedBirthmarkExtractorService
-jp.sourceforge.stigmata.birthmarks.extractors.FrequencyMethodCallBirthmarkExtractorService
-jp.sourceforge.stigmata.birthmarks.extractors.FrequencyUsedClassesBirthmarkExtractorService
@@ -2,6 +2,5 @@ jp.sourceforge.stigmata.birthmarks.smc.SequentialMethodCallBirthmarkService
 jp.sourceforge.stigmata.birthmarks.cvfv.ConstantValueOfFieldVariableBirthmarkService
 jp.sourceforge.stigmata.birthmarks.is.InheritanceStructureBirthmarkService
 jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkService
-jp.sourceforge.stigmata.birthmarks.kgram.KGramBasedBirthmarkService
 jp.sourceforge.stigmata.birthmarks.fmc.FrequencyMethodCallBirthmarkService
 jp.sourceforge.stigmata.birthmarks.fuc.FrequencyUsedClassesBirthmarkService
index 415a8e1..034c29d 100644 (file)
@@ -1,9 +1,5 @@
 <?xml version="1.0" encoding="euc-jp"?>\r
 \r
-<!--\r
- $Id$\r
--->\r
-\r
 <!ELEMENT classpath               (#PCDATA)>\r
 \r
 <!ELEMENT type                    (#PCDATA)>\r
index d917062..b711648 100644 (file)
@@ -7,7 +7,7 @@
 Stigmata version: ${implementation.version}\r
 </p><p>\r
 Copyright (C) by Haruaki Tamada, Ph.D.,\r
-${implementation.vendor} 2004-2008,\r
+${implementation.vendor} 2004-2011,\r
 All right reserved.\r
 </p><p>\r
 Latest version is available at\r
@@ -16,7 +16,7 @@ Stigmata is developed on Java SE 6.
 </p>\r
 <h2>Dependencies</h2>\r
 <p>\r
-Stigmata uses ASM 3.1 for engineering Java bytecode.<br>\r
+Stigmata uses ASM 3.3 for engineering Java bytecode.<br>\r
 <a href="http://asm.objectweb.org/">http://asm.objectweb.org/</a>\r
 </p><p>\r
 Stigmata uses following libraries developed by Apache Software Foundation.<br>\r
@@ -38,7 +38,7 @@ Stigmata uses icons provided by FAMFAMFAM.<br>
 \r
 <h2>License &amp; Copyright</h2>\r
 <p>\r
-Copyright 2004-2007 Haruaki Tamada\r
+Copyright 2004-2011 Haruaki Tamada\r
 </p><p>\r
 Licensed under the Apache License, Version 2.0 (the "License");\r
 you may not use this file except in compliance with the License.\r
index 93b9293..7c21203 100644 (file)
@@ -1,21 +1,21 @@
 <html>\r
 <body>\r
 <p>\r
-Stigmata \83o\81[\83W\83\87\83\93: ${implementation.version}\r
+Stigmata バージョン: ${implementation.version}\r
 </p><p>\r
 Copyright (C) by Haruaki Tamada, Ph.D.,\r
-${implementation.vendor} 2004-2008,\r
+${implementation.vendor} 2004-2011,\r
 All right reserved.\r
 </p><p>\r
-Stigmata \82Ì\8dÅ\90V\83o\81[\83W\83\87\83\93\82Í\r
+Stigmata の最新バージョンは\r
 <a href="http://stigmata.sourceforge.jp/">http://stigmata.sourceforge.jp/</a>\r
-\82©\82ç\8eæ\93¾\89Â\94\\82Å\82·\81D\82Ü\82½\81CStigmata \82Í Java SE 6 \82Å\8aJ\94­\82³\82ê\82Ä\82¢\82Ü\82·\81D\r
+から取得可能です.また,Stigmata は Java SE 6 で開発されています.\r
 </p>\r
-<h2>\88Ë\91\83\89\83C\83u\83\89\83\8a</h2>\r
-Stigmata\82Í Java \83o\83C\83g\83R\81[\83h\82ð\88µ\82¤\82½\82ß\81CASM 3.1\82ð\97\98\97p\82µ\82Ä\82¢\82Ü\82·\81D<br>\r
+<h2>依存ライブラリ</h2>\r
+Stigmataは Java バイトコードを扱うため,ASM 3.3を利用しています.<br>\r
 <a href="http://asm.objectweb.org/">http://asm.objectweb.org/</a>\r
 </p><p>\r
-Stigmata\82ÍApache Software Foundation\82ª\8aJ\94­\82µ\82½\88È\89º\82Ì\83\89\83C\83u\83\89\83\8a\82ð\97\98\97p\82µ\82Ä\82¢\82Ü\82·\81D<br>\r
+StigmataはApache Software Foundationが開発した以下のライブラリを利用しています.<br>\r
 <a href="http://www.apache.org/">http://www.apache.org/</a>\r
 </p>\r
 <ul>\r
@@ -26,22 +26,22 @@ Stigmata
 </ul>\r
 <p>\r
 <p>\r
-Stigmata\82ÍMDS(Multi-Dimensional Scaling)\82Ì\8cv\8eZ\82Ì\82½\82ß\82ÉJama (Java matrix package)\82ð\97\98\97p\82µ\82Ä\82¢\82Ü\82·\81D<br>\r
+StigmataはMDS(Multi-Dimensional Scaling)の計算のためにJama (Java matrix package)を利用しています.<br>\r
 <a href="http://math.nist.gov/javanumerics/jama/">http://math.nist.gov/javanumerics/jama/</a>\r
 </p><p>\r
-Stigmata\82ÍFAMFAMFAM\82ª\92ñ\8b\9f\82µ\82Ä\82¢\82é\83A\83C\83R\83\93\82ð\97\98\97p\82µ\82Ä\82¢\82Ü\82·\81D<br>\r
+StigmataはFAMFAMFAMが提供しているアイコンを利用しています.<br>\r
 <a href="http://www.famfamfam.com/">http://www.famfamfam.com/</a>\r
 </p>\r
 \r
-<h2>\83\89\83C\83Z\83\93\83X&amp;\92\98\8dì\8c </h2>\r
+<h2>ライセンス&amp;著作権</h2>\r
 <p>\r
-Copyright 2004-2008 \8bÊ\93\8ft\8fº (Haruaki Tamada)\r
+Copyright 2004-2011 玉田 春昭 (Haruaki Tamada)\r
 </p><p>\r
-Apache License Version 2.0\81i\81u\96{\83\89\83C\83Z\83\93\83X\81v\81j\82É\8aî\82Ã\82¢\82Ä\83\89\83C\83Z\83\93\83X\82³\82ê\82Ü\82·\81B\82 \82È\82½\82ª\82±\82Ì\83t\83@\83C\83\8b\82ð\8eg\97p\82·\82é\82½\82ß\82É\82Í\81A\96{\83\89\83C\83Z\83\93\83X\82É\8f]\82í\82È\82¯\82ê\82Î\82È\82è\82Ü\82¹\82ñ\81B\96{\83\89\83C\83Z\83\93\83X\82Ì\83R\83s\81[\82Í\89º\8bL\82Ì\8fê\8f\8a\82©\82ç\93ü\8eè\82Å\82«\82Ü\82·\81B\r
+Apache License Version 2.0(「本ライセンス」)に基づいてライセンスされます。あなたがこのファイルを使用するためには、本ライセンスに従わなければなりません。本ライセンスのコピーは下記の場所から入手できます。\r
 </p><p>\r
 <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>\r
 </p><p>\r
-\93K\97p\82³\82ê\82é\96@\97¥\82Ü\82½\82Í\8f\91\96Ê\82Å\82Ì\93¯\88Ó\82É\82æ\82Á\82Ä\96½\82\82ç\82ê\82È\82¢\8cÀ\82è\81A\96{\83\89\83C\83Z\83\93\83X\82É\8aî\82Ã\82¢\82Ä\94Ð\95z\82³\82ê\82é\83\\83t\83g\83E\83F\83A\82Í\81A\96¾\8e¦\96Ù\8e¦\82ð\96â\82í\82¸\81A\82¢\82©\82È\82é\95Û\8fØ\82à\8fð\8c\8f\82à\82È\82µ\82É\81u\8c»\8fó\82Ì\82Ü\82Ü\81v\94Ð\95z\82³\82ê\82Ü\82·\81B\96{\83\89\83C\83Z\83\93\83X\82Å\82Ì\8c \97\98\82Æ\90§\8cÀ\82ð\8bK\92è\82µ\82½\95\8c¾\82É\82Â\82¢\82Ä\82Í\81A\96{\83\89\83C\83Z\83\93\83X\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+適用される法律または書面での同意によって命じられない限り、本ライセンスに基づいて頒布されるソフトウェアは、明示黙示を問わず、いかなる保証も条件もなしに「現状のまま」頒布されます。本ライセンスでの権利と制限を規定した文言については、本ライセンスを参照してください。\r
 </p>\r
 \r
 </body>\r
index 30fbc6b..6c69666 100644 (file)
@@ -1,6 +1,3 @@
-# $Id$\r
-# $Revision$\r
-\r
 stigmata.version=${pom.version}\r
 \r
 icon.directory=/resources/images/\r
index 0bb5c02..8f22b0f 100644 (file)
@@ -1,6 +1,3 @@
-# $Id$\r
-# $Revision$ $Date$\r
-\r
 about.message.file=/resources/about.html.ja\r
 license.file=/META-INF/license.txt.ja\r
 \r
@@ -535,4 +532,4 @@ restart.later=
 \r
 apply.licenses=\83\89\83C\83Z\83\93\83X\8fð\8d\80\82ð\8eó\82¯\93ü\82ê\82Ü\82·\81D\r
 discard.licenses=\83\89\83C\83Z\83\93\83X\8fð\8d\80\82ð\8eó\82¯\93ü\82ê\82Ü\82¹\82ñ\81D\r
-no.valid.licenses=\83\89\83C\83Z\83\93\83X\82ª\92è\8b`\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81D
\ No newline at end of file
+no.valid.licenses=\83\89\83C\83Z\83\93\83X\82ª\92è\8b`\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81D\r
index ff5cae5..93cfb23 100644 (file)
@@ -4,7 +4,6 @@
   <birthmark-services>
     <birthmark-service>
       <type>uc_seq</type>
-      <display-name>Used Classes (compare as sequence)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkExtractor
@@ -16,7 +15,6 @@
 
     <birthmark-service>
       <type>uc_dp</type>
-      <display-name>Used Classes (DP matching)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkExtractor
@@ -28,7 +26,6 @@
 
     <birthmark-service>
       <type>uc_ed</type>
-      <display-name>Used Classes (Edit distance)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkExtractor
@@ -40,7 +37,6 @@
 
     <birthmark-service>
       <type>is_ed</type>
-      <display-name>Inheritance Structure (Edit distance)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.is.InheritanceStructureBirthmarkExtractor
@@ -52,7 +48,6 @@
 
     <birthmark-service>
       <type>is_dp</type>
-      <display-name>Inheritance Structure (DP matching)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.is.InheritanceStructureBirthmarkExtractor
@@ -64,7 +59,6 @@
 
     <birthmark-service>
       <type>smc_dp</type>
-      <display-name>Sequence of Method Calls (DP matching)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.smc.SequentialMethodCallBirthmarkExtractor
@@ -76,7 +70,6 @@
 
     <birthmark-service>
       <type>smc_ed</type>
-      <display-name>Sequence of Method Calls (Edit distance)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.smc.SequentialMethodCallBirthmarkExtractor
@@ -88,7 +81,6 @@
 
     <birthmark-service>
       <type>cvfv_ed</type>
-      <display-name>Constant Value of Field Variable (Edit distance)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.cvfv.ConstantValueOfFieldVariableBirthmarkExtractor
 
     <birthmark-service>
       <type>cvfv_dp</type>
-      <display-name>Constant Value of Field Variable (DP matching)</display-name>
       <description></description>
       <extractor>
         jp.sourceforge.stigmata.birthmarks.cvfv.ConstantValueOfFieldVariableBirthmarkExtractor
index f239508..696e726 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
 import static org.junit.Assert.assertNotNull;
 
 import org.junit.Before;
@@ -11,7 +7,6 @@ import org.junit.Test;
 
 /**
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class ServiceListTest{
     private BirthmarkEnvironment env;
@@ -27,7 +22,6 @@ public class ServiceListTest{
         assertNotNull(env.getService("fmc"));
         assertNotNull(env.getService("fuc"));
         assertNotNull(env.getService("is"));
-        assertNotNull(env.getService("kgram"));
         assertNotNull(env.getService("smc"));
         assertNotNull(env.getService("uc"));
         assertNotNull(env.getService("cvfv_dp"));
index 456c61d..4aa3925 100644 (file)
@@ -1,10 +1,6 @@
 package jp.sourceforge.stigmata;
 
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.spi.BirthmarkSpi;
+import jp.sourceforge.stigmata.spi.BirthmarkService;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -13,7 +9,6 @@ import org.junit.Test;
 /**
  * test case.
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class StigmataTest{
     private BirthmarkContext context;
@@ -32,12 +27,11 @@ public class StigmataTest{
         Assert.assertNotNull(environment.getService("cvfv"));
         Assert.assertNotNull(environment.getService("is"));
         Assert.assertNotNull(environment.getService("uc"));
-        Assert.assertNotNull(environment.getService("kgram"));
     }
 
     @Test
     public void checkSmcBirthmarkService() throws Exception{
-        BirthmarkSpi service = environment.getService("smc");
+        BirthmarkService service = environment.getService("smc");
 
         Assert.assertNotNull(service.getComparator());
         Assert.assertNotNull(service.getExtractor());
@@ -53,7 +47,7 @@ public class StigmataTest{
 
     @Test
     public void checkCvfvBirthmarkService() throws Exception{
-        BirthmarkSpi service = environment.getService("cvfv");
+        BirthmarkService service = environment.getService("cvfv");
 
         Assert.assertNotNull(service.getComparator());
         Assert.assertNotNull(service.getExtractor());
@@ -69,7 +63,7 @@ public class StigmataTest{
 
     @Test
     public void checkIsBirthmarkService() throws Exception{
-        BirthmarkSpi service = environment.getService("is");
+        BirthmarkService service = environment.getService("is");
 
         Assert.assertNotNull(service.getComparator());
         Assert.assertNotNull(service.getExtractor());
@@ -85,7 +79,7 @@ public class StigmataTest{
 
     @Test
     public void checkUcBirthmarkService() throws Exception{
-        BirthmarkSpi service = environment.getService("uc");
+        BirthmarkService service = environment.getService("uc");
 
         Assert.assertNotNull(service.getComparator());
         Assert.assertNotNull(service.getExtractor());
@@ -98,20 +92,4 @@ public class StigmataTest{
             service.getExtractor().getClass().getName()
         );
     }
-
-    @Test
-    public void checkKgramBirthmarkService() throws Exception{
-        BirthmarkSpi service = environment.getService("kgram");
-
-        Assert.assertNotNull(service.getComparator());
-        Assert.assertNotNull(service.getExtractor());
-        Assert.assertEquals(
-            "jp.sourceforge.stigmata.birthmarks.comparators.LogicalAndBirthmarkComparator",
-            service.getComparator().getClass().getName()
-        );
-        Assert.assertEquals(
-            "jp.sourceforge.stigmata.birthmarks.kgram.KGramBasedBirthmarkExtractor",
-            service.getExtractor().getClass().getName()
-        );
-    }
 }
index 8161766..827c9b1 100644 (file)
@@ -1,9 +1,5 @@
 package jp.sourceforge.stigmata.birthmarks;
 
-/*
- * $Id$
- */
-
 import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkEngine;
 import jp.sourceforge.stigmata.BirthmarkSet;
@@ -18,7 +14,6 @@ import org.junit.Test;
 /**
  * 
  * @author Haruaki Tamada
- * @version $Revision$ 
  */
 public class BirthmarkCompareTest{
     private BirthmarkContext context;
@@ -28,7 +23,7 @@ public class BirthmarkCompareTest{
     @Before
     public void readBirthmarks() throws Exception{
         context = Stigmata.getInstance().createContext();
-        context.setBirthmarkTypes(new String[] { "cvfv", "smc", "uc", "is", "kgram", });
+        context.setBirthmarkTypes(new String[] { "cvfv", "smc", "uc", "is", });
         engine = new BirthmarkEngine(context.getEnvironment());
 
         ExtractionResultSet ers = engine.extract(
index 569018f..ab60f94 100644 (file)
@@ -1,15 +1,15 @@
 package jp.sourceforge.stigmata.birthmarks.cvfv;
 
-/*
- * $Id$
- */
+import java.io.FileInputStream;
 
 import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkContext;
 import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.BirthmarkSet;
-import jp.sourceforge.stigmata.ExtractionResultSet;
-import jp.sourceforge.stigmata.Stigmata;
+import jp.sourceforge.stigmata.BirthmarkEnvironment;
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchPartType;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchType;
+import jp.sourceforge.stigmata.utils.WellknownClassManager;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -18,92 +18,35 @@ import org.junit.Test;
 /**
  *
  * @author Haruaki TAMADA
- * @version $Revision$ 
  */
 public class CVFVBirthmarkExtractorTest{
-    private Stigmata stigmata;
-    private BirthmarkContext context;
+    private BirthmarkExtractor extractor; 
 
     @Before
     public void setup(){
-        stigmata = Stigmata.getInstance();
-        context = stigmata.createContext();
-        context.addBirthmarkType("cvfv");
+        extractor = new ConstantValueOfFieldVariableBirthmarkService().getExtractor();
+        BirthmarkEnvironment env = BirthmarkEnvironment.getDefaultEnvironment();
+        WellknownClassManager manager = env.getWellknownClassManager();
+        manager.add(new WellknownClassJudgeRule("java.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
+        manager.add(new WellknownClassJudgeRule("javax.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
     }
 
-    @Test
-    public void checkCVFVBirthmark() throws Exception{
-        ExtractionResultSet ers = stigmata.createEngine().extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/Stigmata.class", },
-            context
-        );
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(1, array.length);
-        Assert.assertNotNull(array[0].getBirthmark("cvfv"));
-
-        Birthmark birthmark = array[0].getBirthmark("cvfv");
-        Assert.assertEquals("cvfv", birthmark.getType());
-        Assert.assertEquals(4, birthmark.getElementCount());
-
-        BirthmarkElement[] elements = birthmark.getElements();
-        Assert.assertEquals("jp.sourceforge.stigmata.birthmarks.cvfv.TypeAndValueBirthmarkElement",
-                            elements[0].getClass().getName());
-        Assert.assertEquals("jp.sourceforge.stigmata.birthmarks.cvfv.TypeAndValueBirthmarkElement",
-                            elements[1].getClass().getName());
-        Assert.assertEquals("jp.sourceforge.stigmata.birthmarks.cvfv.TypeAndValueBirthmarkElement",
-                            elements[2].getClass().getName());
-        Assert.assertEquals("jp.sourceforge.stigmata.birthmarks.cvfv.TypeAndValueBirthmarkElement",
-                            elements[3].getClass().getName());
-
-        Assert.assertEquals("Ljp/sourceforge/stigmata/Stigmata;",
-            ((TypeAndValueBirthmarkElement)elements[0]).getSignature());
-        Assert.assertNull(((TypeAndValueBirthmarkElement)elements[0]).getValue());
-
-        Assert.assertEquals("Ljp/sourceforge/stigmata/printer/PrinterManager;",
-            ((TypeAndValueBirthmarkElement)elements[1]).getSignature());
-        Assert.assertNull(((TypeAndValueBirthmarkElement)elements[1]).getValue());
-
-        Assert.assertEquals("Ljp/sourceforge/stigmata/BirthmarkEnvironment;",
-                            ((TypeAndValueBirthmarkElement)elements[2]).getSignature());
-        Assert.assertNull(((TypeAndValueBirthmarkElement)elements[2]).getValue());
-
-        Assert.assertEquals("Ljava/util/List;",
-                            ((TypeAndValueBirthmarkElement)elements[3]).getSignature());
-        Assert.assertNull(((TypeAndValueBirthmarkElement)elements[3]).getValue());
-    }
 
     @Test
-    public void checkCVFVBirthmark2() throws Exception{
-        ExtractionResultSet ers = stigmata.createEngine().extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/result/RoundRobinComparisonResultSet.class", },
-            context
-        );
-
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(array.length, 1);
-        Assert.assertNotNull(array[0].getBirthmark("cvfv"));
-
-        Birthmark birthmark = array[0].getBirthmark("cvfv");
-        Assert.assertEquals(birthmark.getType(), "cvfv");
-        Assert.assertEquals(3, birthmark.getElementCount());
+    public void checkBirthmark() throws Exception{
+        Birthmark birthmark = extractor.extract(new FileInputStream("target/test-classes/resources/HelloWorldFrame.class"));
+        Assert.assertEquals("cvfv", birthmark.getType());
 
         BirthmarkElement[] elements = birthmark.getElements();
-        Assert.assertEquals("jp.sourceforge.stigmata.birthmarks.cvfv.TypeAndValueBirthmarkElement",
-                            elements[0].getClass().getName());
-        Assert.assertEquals("jp.sourceforge.stigmata.birthmarks.cvfv.TypeAndValueBirthmarkElement",
-                            elements[1].getClass().getName());
-        Assert.assertEquals("jp.sourceforge.stigmata.birthmarks.cvfv.TypeAndValueBirthmarkElement",
-                            elements[2].getClass().getName());
+        Assert.assertEquals(2, elements.length);
 
-        Assert.assertEquals("I",   ((TypeAndValueBirthmarkElement)elements[0]).getSignature());
-        Assert.assertEquals(-1,    ((TypeAndValueBirthmarkElement)elements[0]).getValue());
+        Assert.assertTrue(elements[0] instanceof TypeAndValueBirthmarkElement);
+        Assert.assertTrue(elements[1] instanceof TypeAndValueBirthmarkElement);
 
-        Assert.assertEquals("Z",   ((TypeAndValueBirthmarkElement)elements[1]).getSignature());
-        Assert.assertEquals(null,  ((TypeAndValueBirthmarkElement)elements[1]).getValue());
+        Assert.assertEquals("Ljava/lang/String;", ((TypeAndValueBirthmarkElement)elements[0]).getSignature());
+        Assert.assertEquals("Ljava/lang/String;", ((TypeAndValueBirthmarkElement)elements[1]).getSignature());
 
-        Assert.assertEquals("Z",   ((TypeAndValueBirthmarkElement)elements[2]).getSignature());
-        Assert.assertEquals(0,     ((TypeAndValueBirthmarkElement)elements[2]).getValue());
+        Assert.assertEquals("Hello World", elements[0].getValue());
+        Assert.assertEquals("Lucida Regular", elements[1].getValue());
     }
 }
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/is/ISBirthmarkExtractorTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/is/ISBirthmarkExtractorTest.java
deleted file mode 100644 (file)
index bd9e052..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.is;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkContext;
-import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.BirthmarkEngine;
-import jp.sourceforge.stigmata.BirthmarkSet;
-import jp.sourceforge.stigmata.ExtractionResultSet;
-import jp.sourceforge.stigmata.Stigmata;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class ISBirthmarkExtractorTest{
-    private BirthmarkEngine engine;
-    private BirthmarkContext context;
-
-    @Before
-    public void setup(){
-        engine = Stigmata.getInstance().createEngine();
-        context = Stigmata.getInstance().createContext();
-        context.addBirthmarkType("is");
-    }
-
-    @Test
-    public void checkISBirthmark() throws Exception{
-        ExtractionResultSet ers = engine.extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/Stigmata.class", },
-            context
-        );
-
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(1, array.length);
-        Assert.assertNotNull(array[0].getBirthmark("is"));
-
-        Birthmark birthmark = array[0].getBirthmark("is");
-        Assert.assertEquals("is", birthmark.getType());
-        Assert.assertEquals(2, birthmark.getElementCount());
-
-        BirthmarkElement[] elements = birthmark.getElements();
-        Assert.assertNull(elements[0].getValue());
-        Assert.assertEquals("java.lang.Object", elements[1].getValue());
-    }
-
-    @Test
-    public void checkISBirthmark2() throws Exception{
-        ExtractionResultSet ers = engine.extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/result/RoundRobinComparisonResultSet.class", },
-            context
-        );
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(1, array.length);
-        Assert.assertNotNull(array[0].getBirthmark("is"));
-
-        Birthmark birthmark = array[0].getBirthmark("is");
-        Assert.assertEquals("is", birthmark.getType());
-        Assert.assertEquals(3, birthmark.getElementCount());
-
-        BirthmarkElement[] elements = birthmark.getElements();
-        Assert.assertNull(elements[0].getValue());
-        Assert.assertNull(elements[1].getValue());
-        Assert.assertEquals("java.lang.Object", elements[2].getValue());
-    }
-}
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractorTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/is/InheritanceStructureBirthmarkExtractorTest.java
new file mode 100644 (file)
index 0000000..1b05b40
--- /dev/null
@@ -0,0 +1,46 @@
+package jp.sourceforge.stigmata.birthmarks.is;
+
+import java.io.FileInputStream;
+
+import jp.sourceforge.stigmata.Birthmark;
+import jp.sourceforge.stigmata.BirthmarkElement;
+import jp.sourceforge.stigmata.BirthmarkEnvironment;
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.birthmarks.NullBirthmarkElement;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchPartType;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchType;
+import jp.sourceforge.stigmata.utils.WellknownClassManager;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ *
+ * @author Haruaki TAMADA
+ */
+public class InheritanceStructureBirthmarkExtractorTest{
+    private BirthmarkExtractor extractor; 
+
+    @Before
+    public void setup(){
+        extractor = new InheritanceStructureBirthmarkService().getExtractor();
+        BirthmarkEnvironment env = BirthmarkEnvironment.getDefaultEnvironment();
+        WellknownClassManager manager = env.getWellknownClassManager();
+        manager.add(new WellknownClassJudgeRule("java.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
+        manager.add(new WellknownClassJudgeRule("javax.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
+    }
+
+    @Test
+    public void checkBirthmark() throws Exception{
+        Birthmark birthmark = extractor.extract(new FileInputStream("target/test-classes/resources/HelloWorldFrame.class"));
+        Assert.assertEquals("is", birthmark.getType());
+
+        BirthmarkElement[] elements = birthmark.getElements();
+        Assert.assertEquals(2, elements.length);
+
+        Assert.assertTrue(elements[0] instanceof NullBirthmarkElement);
+        Assert.assertEquals("java.lang.Object", elements[1].getValue());
+    }
+}
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/kgram/KGramTest.java
deleted file mode 100644 (file)
index 13526a6..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.kgram;
-
-/*
- * $Id$
- */
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * 
- * @author Haruaki Tamada
- * @version $Revision$ 
- */
-public class KGramTest{
-    private String[] plainValues;
-    private String[] complexValues;
-
-    @Before
-    public void buildKGrams(){
-        plainValues = new String[] { "a", "b", "c", "d", "e", "f", "g", };
-        complexValues = new String[] { "a", "b", "r", "a", "c", "a", "d", "a", "b", "r", "a", };
-    }
-
-    @Test
-    public void checkPlainKGram(){
-        KGram<String>[] kgrams = KGramBuilder.getInstance().buildKGram(plainValues, 4);
-        Assert.assertEquals(4, kgrams.length);
-
-        Assert.assertEquals(4, kgrams[0].getKValue());
-        Assert.assertEquals(4, kgrams[1].getKValue());
-        Assert.assertEquals(4, kgrams[2].getKValue());
-        Assert.assertEquals(4, kgrams[3].getKValue());
-
-        Assert.assertArrayEquals(new String[] { "a", "b", "c", "d", }, kgrams[0].toArray());
-        Assert.assertArrayEquals(new String[] { "b", "c", "d", "e", }, kgrams[1].toArray());
-        Assert.assertArrayEquals(new String[] { "c", "d", "e", "f", }, kgrams[2].toArray());
-        Assert.assertArrayEquals(new String[] { "d", "e", "f", "g", }, kgrams[3].toArray());
-    }
-
-    @Test
-    public void checkPlainKGram2(){
-        KGram<String>[] kgrams = KGramBuilder.getInstance().buildKGram(plainValues, 3);
-        Assert.assertEquals(5, kgrams.length);
-
-        Assert.assertEquals(3, kgrams[0].getKValue());
-        Assert.assertEquals(3, kgrams[1].getKValue());
-        Assert.assertEquals(3, kgrams[2].getKValue());
-        Assert.assertEquals(3, kgrams[3].getKValue());
-        Assert.assertEquals(3, kgrams[4].getKValue());
-
-        Assert.assertArrayEquals(new String[] { "a", "b", "c", }, kgrams[0].toArray());
-        Assert.assertArrayEquals(new String[] { "b", "c", "d", }, kgrams[1].toArray());
-        Assert.assertArrayEquals(new String[] { "c", "d", "e", }, kgrams[2].toArray());
-        Assert.assertArrayEquals(new String[] { "d", "e", "f", }, kgrams[3].toArray());
-        Assert.assertArrayEquals(new String[] { "e", "f", "g", }, kgrams[4].toArray());
-    }
-
-    @Test
-    public void checkComplexKGram(){
-        KGram<String>[] kgrams = KGramBuilder.getInstance().buildKGram(complexValues, 3);
-
-        Assert.assertEquals(7, kgrams.length);
-
-        Assert.assertArrayEquals(new String[] { "a", "b", "r", }, kgrams[0].toArray());
-        Assert.assertArrayEquals(new String[] { "b", "r", "a", }, kgrams[1].toArray());
-        Assert.assertArrayEquals(new String[] { "r", "a", "c", }, kgrams[2].toArray());
-        Assert.assertArrayEquals(new String[] { "a", "c", "a", }, kgrams[3].toArray());
-        Assert.assertArrayEquals(new String[] { "c", "a", "d", }, kgrams[4].toArray());
-        Assert.assertArrayEquals(new String[] { "a", "d", "a", }, kgrams[5].toArray());
-        Assert.assertArrayEquals(new String[] { "d", "a", "b", }, kgrams[6].toArray());
-        // following kgram is appeared in above.
-        // assertEquals(new String[] { "a", "b", "r", }, kgrams[0].toArray());
-        // assertEquals(new String[] { "b", "r", "a", }, kgrams[1].toArray());
-    }
-}
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractorTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/smc/SequentialMethodCallBirthmarkExtractorTest.java
new file mode 100644 (file)
index 0000000..7cc4474
--- /dev/null
@@ -0,0 +1,56 @@
+package jp.sourceforge.stigmata.birthmarks.smc;
+
+import java.io.FileInputStream;
+
+import jp.sourceforge.stigmata.Birthmark;
+import jp.sourceforge.stigmata.BirthmarkElement;
+import jp.sourceforge.stigmata.BirthmarkEnvironment;
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchPartType;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchType;
+import jp.sourceforge.stigmata.utils.WellknownClassManager;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ *
+ * @author Haruaki TAMADA
+ */
+public class SequentialMethodCallBirthmarkExtractorTest{
+    private BirthmarkExtractor extractor; 
+
+    @Before
+    public void setup(){
+        extractor = new SequentialMethodCallBirthmarkService().getExtractor();
+        BirthmarkEnvironment env = BirthmarkEnvironment.getDefaultEnvironment();
+        WellknownClassManager manager = env.getWellknownClassManager();
+        manager.add(new WellknownClassJudgeRule("java.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
+        manager.add(new WellknownClassJudgeRule("javax.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
+    }
+
+
+    @Test
+    public void checkBirthmark() throws Exception{
+        Birthmark birthmark = extractor.extract(new FileInputStream("target/test-classes/resources/HelloWorldFrame.class"));
+        Assert.assertEquals("smc", birthmark.getType());
+
+        BirthmarkElement[] elements = birthmark.getElements();
+        Assert.assertEquals(10, elements.length);
+
+        Assert.assertEquals("java.lang.Object#<init>!()V",   elements[0].getValue());
+        Assert.assertEquals("javax.swing.JFrame#<init>!()V", elements[1].getValue());
+        Assert.assertEquals("javax.swing.JLabel#<init>!(Ljava/lang/String;)V",  elements[2].getValue());
+        Assert.assertEquals("java.awt.Font#<init>!(Ljava/lang/String;II)V",     elements[3].getValue());
+        Assert.assertEquals("javax.swing.JLabel#setFont!(Ljava/awt/Font;)V",    elements[4].getValue());
+        Assert.assertEquals("javax.swing.JFrame#setDefaultCloseOperation!(I)V", elements[5].getValue());
+        Assert.assertEquals("javax.swing.JFrame#getContentPane!()Ljava/awt/Container;",
+                            elements[6].getValue());
+        Assert.assertEquals("java.awt.Container#add!(Ljava/awt/Component;Ljava/lang/Object;)V",
+                            elements[7].getValue());
+        Assert.assertEquals("javax.swing.JFrame#pack!()V",                      elements[8].getValue());
+        Assert.assertEquals("javax.swing.JFrame#setVisible!(Z)V",               elements[9].getValue());
+    }
+}
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/smc/SmcBirthmarkExtractorTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/smc/SmcBirthmarkExtractorTest.java
deleted file mode 100644 (file)
index a3e3eda..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.smc;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkContext;
-import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.BirthmarkSet;
-import jp.sourceforge.stigmata.ExtractionResultSet;
-import jp.sourceforge.stigmata.Stigmata;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class SmcBirthmarkExtractorTest{
-    private Stigmata stigmata;
-    private BirthmarkContext context;
-
-    @Before
-    public void setup(){
-        stigmata = Stigmata.getInstance();
-        context = stigmata.createContext();
-        context.addBirthmarkType("smc");
-    }
-
-    @Test
-    public void checkSmcBirthmark() throws Exception{
-        ExtractionResultSet ers = stigmata.createEngine().extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/Stigmata.class", },
-            context
-        );
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(1, array.length);
-        Assert.assertNotNull(array[0].getBirthmark("smc"));
-
-        Birthmark birthmark = array[0].getBirthmark("smc");
-        Assert.assertEquals("smc", birthmark.getType());
-
-        BirthmarkElement[] elements = birthmark.getElements();
-        for(int i = 0; i < elements.length; i++){
-            Assert.assertEquals(
-                "jp.sourceforge.stigmata.birthmarks.smc.MethodCallBirthmarkElement",
-                elements[i].getClass().getName()
-            );
-        }
-        /*
-        Assert.assertEquals(76, birthmark.getElementCount());
-        int index = 0;
-        Assert.assertEquals("java.io.FileInputStream#<init>",       elements[index++].getValue());
-        Assert.assertEquals("java.io.File#<init>",                  elements[index++].getValue());
-        Assert.assertEquals("java.io.File#exists",                  elements[index++].getValue());
-        Assert.assertEquals("java.lang.System#getProperty",         elements[index++].getValue());
-        Assert.assertEquals("java.io.File#<init>",                  elements[index++].getValue());
-        Assert.assertEquals("java.io.File#exists",                  elements[index++].getValue());
-        Assert.assertEquals("java.io.FileInputStream#<init>",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.Object#getClass",            elements[index++].getValue());
-        Assert.assertEquals("java.lang.Class#getResourceAsStream",  elements[index++].getValue());
-        Assert.assertEquals("java.util.ArrayList#<init>",           elements[index++].getValue());
-        Assert.assertEquals("java.util.ArrayList#<init>",           elements[index++].getValue());
-        Assert.assertEquals("java.lang.String#endsWith",            elements[index++].getValue());
-        Assert.assertEquals("java.util.List#add",                   elements[index++].getValue());
-        Assert.assertEquals("java.lang.String#endsWith",            elements[index++].getValue());
-        Assert.assertEquals("java.lang.String#endsWith",            elements[index++].getValue());
-        Assert.assertEquals("java.util.List#add",                   elements[index++].getValue());
-        Assert.assertEquals("java.io.File#<init>",                  elements[index++].getValue());
-        Assert.assertEquals("java.io.File#toURI",                   elements[index++].getValue());
-        Assert.assertEquals("java.net.URI#toURL",                   elements[index++].getValue());
-        Assert.assertEquals("java.lang.String#endsWith",            elements[index++].getValue());
-        Assert.assertEquals("java.util.List#add",                   elements[index++].getValue());
-        Assert.assertEquals("java.util.List#iterator",              elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#hasNext",           elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#next",              elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#hasNext",           elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#next",              elements[index++].getValue());
-        Assert.assertEquals("java.net.URL#openStream",              elements[index++].getValue());
-        Assert.assertEquals("java.util.List#add",                   elements[index++].getValue());
-        Assert.assertEquals("java.util.List#size",                  elements[index++].getValue());
-        Assert.assertEquals("java.util.List#toArray",               elements[index++].getValue());
-        Assert.assertEquals("java.util.ArrayList#<init>",           elements[index++].getValue());
-        Assert.assertEquals("java.util.List#add",                   elements[index++].getValue());
-        Assert.assertEquals("java.lang.Object#getClass",            elements[index++].getValue());
-        Assert.assertEquals("java.lang.Class#getName",              elements[index++].getValue());
-        Assert.assertEquals("java.util.logging.Logger#getLogger",   elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#<init>",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#append",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#append",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#toString",     elements[index++].getValue());
-        Assert.assertEquals("java.util.logging.Logger#warning",     elements[index++].getValue());
-        Assert.assertEquals("java.util.List#size",                  elements[index++].getValue());
-        Assert.assertEquals("java.util.List#toArray",               elements[index++].getValue());
-        Assert.assertEquals("java.util.ArrayList#<init>",           elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#hasNext",           elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#next",              elements[index++].getValue());
-        Assert.assertEquals("java.lang.Double#valueOf",             elements[index++].getValue());
-        Assert.assertEquals("java.util.List#add",                   elements[index++].getValue());
-        Assert.assertEquals("java.util.List#iterator",              elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#hasNext",           elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#next",              elements[index++].getValue());
-        Assert.assertEquals("java.lang.Double#doubleValue",         elements[index++].getValue());
-        Assert.assertEquals("java.lang.Double#doubleValue",         elements[index++].getValue());
-        Assert.assertEquals("org.apache.commons.beanutils.BeanUtils#describe",
-                            elements[index++].getValue());
-        Assert.assertEquals("java.util.Map#remove",                 elements[index++].getValue());
-        Assert.assertEquals("java.util.Map#remove",                 elements[index++].getValue());
-        Assert.assertEquals("java.util.Map#keySet",                 elements[index++].getValue());
-        Assert.assertEquals("java.util.Set#iterator",               elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#hasNext",           elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#next",              elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#<init>",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#append",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#append",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#append",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.String#valueOf",             elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#append",       elements[index++].getValue());
-        Assert.assertEquals("java.lang.StringBuilder#toString",     elements[index++].getValue());
-        Assert.assertEquals("org.apache.commons.beanutils.BeanUtils#setProperty",
-                            elements[index++].getValue());
-        Assert.assertEquals("java.io.ByteArrayInputStream#<init>",  elements[index++].getValue());
-        Assert.assertEquals("java.io.ByteArrayOutputStream#<init>", elements[index++].getValue());
-        Assert.assertEquals("java.io.InputStream#read",             elements[index++].getValue());
-        Assert.assertEquals("java.io.ByteArrayOutputStream#write",  elements[index++].getValue());
-        Assert.assertEquals("java.io.ByteArrayOutputStream#toByteArray",
-                            elements[index++].getValue());
-        Assert.assertEquals("java.io.ByteArrayOutputStream#close",  elements[index++].getValue());
-        Assert.assertEquals("javax.imageio.spi.ServiceRegistry#lookupProviders",
-                            elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#hasNext",           elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator#next",              elements[index++].getValue());
-        */
-    }
-
-    @Test
-    public void checkSmcBirthmark2() throws Exception{
-        ExtractionResultSet ers = stigmata.createEngine().extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/result/RoundRobinComparisonResultSet.class", },
-            context
-        );
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(array.length, 1);
-        Assert.assertNotNull(array[0].getBirthmark("smc"));
-
-        Birthmark birthmark = array[0].getBirthmark("smc");
-        Assert.assertEquals("smc", birthmark.getType());
-        Assert.assertEquals(18, birthmark.getElementCount());
-
-        BirthmarkElement[] elements = birthmark.getElements();
-        for(int i = 0; i < elements.length; i++){
-            Assert.assertEquals(
-                "jp.sourceforge.stigmata.birthmarks.smc.MethodCallBirthmarkElement",
-                elements[i].getClass().getName()
-            );
-        }
-        /*
-        int index = 0;
-        // <init>(ExtractionResult, BirthmarkEnvironment, boolean)
-        Assert.assertEquals("java.lang.Object#<init>",      elements[index++].toString());
-
-        // getComparisonSources
-        Assert.assertEquals("java.util.ArrayArrays#<init>", elements[index++].toString());
-        Assert.assertEquals("java.util.Arrays#asList",      elements[index++].toString());
-
-        // setCompareSamePair
-        Assert.assertEquals("java.util.List#size",          elements[index++].toString());
-        Assert.assertEquals("java.util.List#size",          elements[index++].toString());
-        Assert.assertEquals("java.util.List#size",          elements[index++].toString());
-        Assert.assertEquals("java.util.List#size",          elements[index++].toString());
-
-        // getComparisonSources
-        Assert.assertEquals("java.util.HashMap#<init>",     elements[index++].toString());
-        Assert.assertEquals("java.util.List#iterator",      elements[index++].toString());
-        Assert.assertEquals("java.util.Iterator#hasNext",   elements[index++].toString());
-        Assert.assertEquals("java.util.Iterator#next",      elements[index++].toString());
-        Assert.assertEquals("java.util.Map#put",            elements[index++].toString());
-        Assert.assertEquals("java.util.List#iterator",      elements[index++].toString());
-        Assert.assertEquals("java.util.Iterator#hasNext",   elements[index++].toString());
-        Assert.assertEquals("java.util.Iterator#next",      elements[index++].toString());
-        Assert.assertEquals("java.util.Map#put",            elements[index++].toString());
-        Assert.assertEquals("java.util.Map#size",           elements[index++].toString());
-        Assert.assertEquals("java.util.Map#entrySet",       elements[index++].toString());
-        Assert.assertEquals("java.util.Set#iterator",       elements[index++].toString());
-        Assert.assertEquals("java.util.Iterator#hasNext",   elements[index++].toString());
-        Assert.assertEquals("java.util.Iterator#next",      elements[index++].toString());
-        Assert.assertEquals("java.util.Map$Entry#getValue", elements[index++].toString());
-        */
-    }
-}
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UCBirthmarkExtractorTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UCBirthmarkExtractorTest.java
deleted file mode 100644 (file)
index 78716ce..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-package jp.sourceforge.stigmata.birthmarks.uc;
-
-/*
- * $Id$
- */
-
-import jp.sourceforge.stigmata.Birthmark;
-import jp.sourceforge.stigmata.BirthmarkContext;
-import jp.sourceforge.stigmata.BirthmarkElement;
-import jp.sourceforge.stigmata.BirthmarkSet;
-import jp.sourceforge.stigmata.ExtractionResultSet;
-import jp.sourceforge.stigmata.Stigmata;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- *
- * @author Haruaki TAMADA
- * @version $Revision$ 
- */
-public class UCBirthmarkExtractorTest{
-    private Stigmata stigmata;
-    private BirthmarkContext context;
-
-    @Before
-    public void setup(){
-        stigmata = Stigmata.getInstance();
-        context = stigmata.createContext();
-        context.addBirthmarkType("uc");
-    }
-
-    @Test
-    public void checkUCBirthmark() throws Exception{
-        ExtractionResultSet ers = stigmata.createEngine().extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/Stigmata.class", },
-            context
-        );
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(1, array.length);
-        Assert.assertNotNull(array[0].getBirthmark("uc"));
-
-        Birthmark birthmark = array[0].getBirthmark("uc");
-        Assert.assertEquals("uc", birthmark.getType());
-        Assert.assertEquals(18, birthmark.getElementCount());
-
-        BirthmarkElement[] elements = birthmark.getElements();
-        int index = 0;
-        Assert.assertEquals("java.io.File",                      elements[index++].getValue());
-        Assert.assertEquals("java.io.FileFilter",                elements[index++].getValue());
-        Assert.assertEquals("java.io.FileInputStream",           elements[index++].getValue());
-        Assert.assertEquals("java.io.FileWriter",                elements[index++].getValue());
-        Assert.assertEquals("java.io.InputStream",               elements[index++].getValue());
-        Assert.assertEquals("java.io.PrintWriter",               elements[index++].getValue());
-        Assert.assertEquals("java.io.Writer",                    elements[index++].getValue());
-        Assert.assertEquals("java.lang.Class",                   elements[index++].getValue());
-        Assert.assertEquals("java.lang.ClassLoader",             elements[index++].getValue());
-        Assert.assertEquals("java.lang.Object",                  elements[index++].getValue());
-        Assert.assertEquals("java.lang.String",                  elements[index++].getValue());
-        Assert.assertEquals("java.lang.System",                  elements[index++].getValue());
-        Assert.assertEquals("java.net.URI",                      elements[index++].getValue());
-        Assert.assertEquals("java.net.URL",                      elements[index++].getValue());
-        Assert.assertEquals("java.net.URLClassLoader",           elements[index++].getValue());
-        Assert.assertEquals("java.util.ArrayList",               elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator",                elements[index++].getValue());
-        Assert.assertEquals("java.util.List",                    elements[index++].getValue());
-    }
-
-    @Test
-    public void checkUCBirthmark2() throws Exception{
-        ExtractionResultSet ers = stigmata.createEngine().extract(
-            new String[] { "target/classes/jp/sourceforge/stigmata/result/RoundRobinComparisonResultSet.class", },
-            context
-        );
-        BirthmarkSet[] array = ers.getBirthmarkSets();
-
-        Assert.assertEquals(1, array.length);
-        Assert.assertNotNull(array[0].getBirthmark("uc"));
-
-        Birthmark birthmark = array[0].getBirthmark("uc");
-        Assert.assertEquals("uc", birthmark.getType());
-        Assert.assertEquals(9, birthmark.getElementCount());
-
-        BirthmarkElement[] elements = birthmark.getElements();
-        int index = 0;
-        Assert.assertEquals("java.lang.Object",     elements[index++].getValue());
-        Assert.assertEquals("java.lang.String",     elements[index++].getValue());
-        Assert.assertEquals("java.net.URL",         elements[index++].getValue());
-        Assert.assertEquals("java.util.ArrayList",  elements[index++].getValue());
-        Assert.assertEquals("java.util.Collection", elements[index++].getValue());
-        Assert.assertEquals("java.util.HashMap",    elements[index++].getValue());
-        Assert.assertEquals("java.util.Iterator",   elements[index++].getValue());
-        Assert.assertEquals("java.util.List",       elements[index++].getValue());
-        Assert.assertEquals("java.util.Map",        elements[index++].getValue());
-    }
-}
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractorTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkExtractorTest.java
new file mode 100644 (file)
index 0000000..620821c
--- /dev/null
@@ -0,0 +1,50 @@
+package jp.sourceforge.stigmata.birthmarks.uc;
+
+import java.io.FileInputStream;
+
+import jp.sourceforge.stigmata.Birthmark;
+import jp.sourceforge.stigmata.BirthmarkElement;
+import jp.sourceforge.stigmata.BirthmarkEnvironment;
+import jp.sourceforge.stigmata.BirthmarkExtractor;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchPartType;
+import jp.sourceforge.stigmata.utils.WellknownClassJudgeRule.MatchType;
+import jp.sourceforge.stigmata.utils.WellknownClassManager;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ *
+ * @author Haruaki TAMADA
+ */
+public class UsedClassesBirthmarkExtractorTest{
+    private BirthmarkExtractor extractor; 
+
+    @Before
+    public void setup(){
+        extractor = new UsedClassesBirthmarkService().getExtractor();
+        BirthmarkEnvironment env = BirthmarkEnvironment.getDefaultEnvironment();
+        WellknownClassManager manager = env.getWellknownClassManager();
+        manager.add(new WellknownClassJudgeRule("java.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
+        manager.add(new WellknownClassJudgeRule("javax.", MatchType.PREFIX, MatchPartType.FULLY_NAME));
+    }
+
+    @Test
+    public void checkBirthmark() throws Exception{
+        Birthmark birthmark = extractor.extract(new FileInputStream("target/test-classes/resources/HelloWorldFrame.class"));
+
+        Assert.assertEquals("uc", birthmark.getType());
+        Assert.assertEquals(7, birthmark.getElementCount());
+
+        BirthmarkElement[] elements = birthmark.getElements();
+        Assert.assertEquals("java.awt.Component", elements[0].getValue());
+        Assert.assertEquals("java.awt.Container", elements[1].getValue());
+        Assert.assertEquals("java.awt.Font", elements[2].getValue());
+        Assert.assertEquals("java.lang.Object", elements[3].getValue());
+        Assert.assertEquals("java.lang.String", elements[4].getValue());
+        Assert.assertEquals("javax.swing.JFrame", elements[5].getValue());
+        Assert.assertEquals("javax.swing.JLabel", elements[6].getValue());
+    }
+}
diff --git a/src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkServiceTest.java b/src/test/java/jp/sourceforge/stigmata/birthmarks/uc/UsedClassesBirthmarkServiceTest.java
new file mode 100644 (file)
index 0000000..a30b723
--- /dev/null
@@ -0,0 +1,27 @@
+package jp.sourceforge.stigmata.birthmarks.uc;\r
+\r
+import jp.sourceforge.stigmata.birthmarks.comparators.LogicalAndBirthmarkComparator;\r
+import junit.framework.Assert;\r
+\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+public class UsedClassesBirthmarkServiceTest{\r
+    private UsedClassesBirthmarkService service;\r
+\r
+    @Before\r
+    public void setUp(){\r
+        service = new UsedClassesBirthmarkService();\r
+    }\r
+\r
+    @Test\r
+    public void testBasic(){\r
+        Assert.assertEquals("uc", service.getType());\r
+        Assert.assertEquals("Used classes birthmark", service.getDescription());\r
+        Assert.assertFalse(service.isExperimental());\r
+        Assert.assertFalse(service.isUserDefined());\r
+        Assert.assertEquals(UsedClassesBirthmarkExtractor.class, service.getExtractor().getClass());\r
+        Assert.assertEquals(LogicalAndBirthmarkComparator.class, service.getComparator().getClass());\r
+        Assert.assertNull(service.getPreprocessor());\r
+    }\r
+}\r
diff --git a/src/test/resources/resources/HelloWorldFrame.class b/src/test/resources/resources/HelloWorldFrame.class
new file mode 100644 (file)
index 0000000..9766373
Binary files /dev/null and b/src/test/resources/resources/HelloWorldFrame.class differ
diff --git a/src/test/resources/resources/HelloWorldFrame.java b/src/test/resources/resources/HelloWorldFrame.java
new file mode 100644 (file)
index 0000000..2123a8e
--- /dev/null
@@ -0,0 +1,25 @@
+import java.awt.BorderLayout;\r
+import java.awt.Font;\r
+\r
+import javax.swing.JFrame;\r
+import javax.swing.JLabel;\r
+\r
+\r
+public class HelloWorldFrame{\r
+    private String message = "Hello World";\r
+    private String fontName = "Lucida Regular";\r
+\r
+    public HelloWorldFrame(){\r
+        JFrame frame = new JFrame();\r
+        JLabel label = new JLabel(message);\r
+        label.setFont(new Font(fontName, Font.BOLD, 72));\r
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
+        frame.getContentPane().add(label, BorderLayout.CENTER);\r
+        frame.pack();\r
+        frame.setVisible(true);\r
+    }\r
+\r
+    public static void main(String[] args){\r
+        new HelloWorldFrame();\r
+    }\r
+}
\ No newline at end of file