/** * This is the abstract base for a filter processing execution traces. * * @author Andre van Hoorn * * @since 1.1 */ @Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractExecutionTraceProcessingFilter extends AbstractTraceProcessingFilter { /** * Creates a new instance of this class using the given parameters. * * @param configuration * The configuration for this component. * @param projectContext * The project context for this component. */ public AbstractExecutionTraceProcessingFilter(final Configuration configuration, final IProjectContext projectContext) { super(configuration, projectContext); } }
/** * {@inheritDoc} */ @Override public final String[] getAllRepositoryPortNames() { final List<String> repositoryNames = new LinkedList<String>(); final Plugin annotation = this.getClass().getAnnotation(Plugin.class); for (final RepositoryPort repositoryPort : annotation.repositoryPorts()) { repositoryNames.add(repositoryPort.name()); } return repositoryNames.toArray(new String[repositoryNames.size()]); }
/** * {@inheritDoc} */ @Override public final void connect(final String reponame, final AbstractRepository repository) throws AnalysisConfigurationException { if (this.state != STATE.READY) { throw new AnalysisConfigurationException("Plugin: " + this.getClass().getName() + " final not in " + STATE.READY + " this.state, but final in state " + this.state + "."); } final RepositoryPort port = this.repositoryPorts.get(reponame); if (port == null) { throw new AnalysisConfigurationException("Failed to connect plugin '" + this.getName() + "' (" + this.getPluginName() + ") to repository '" + repository.getName() + "' (" + repository.getRepositoryName() + "). Unknown repository port: " + reponame); } final Class<? extends AbstractRepository> repositoryType = port.repositoryType(); if (!repositoryType.isAssignableFrom(repository.getClass())) { throw new AnalysisConfigurationException("Failed to connect plugin '" + this.getName() + "' (" + this.getPluginName() + ") to repository '" + repository.getName() + "' (" + repository.getRepositoryName() + "). Expected RepositoryType: " + repositoryType.getName() + " Found: " + repository.getClass().getName()); } synchronized (this) { if (this.registeredRepositories.containsKey(reponame)) { throw new AnalysisConfigurationException("Failed to connect plugin '" + this.getName() + "' (" + this.getPluginName() + ") to repository '" + repository.getName() + "' (" + repository.getRepositoryName() + "). RepositoryPort already connected: " + reponame); } this.registeredRepositories.put(reponame, repository); } }
/** * {@inheritDoc} */ @Override public final void connect(final String reponame, final AbstractRepository repository) throws AnalysisConfigurationException { if (this.state != STATE.READY) { throw new AnalysisConfigurationException("Plugin: " + this.getClass().getName() + " final not in " + STATE.READY + " this.state, but final in state " + this.state + "."); } final RepositoryPort port = this.repositoryPorts.get(reponame); if (port == null) { throw new AnalysisConfigurationException("Failed to connect plugin '" + this.getName() + "' (" + this.getPluginName() + ") to repository '" + repository.getName() + "' (" + repository.getRepositoryName() + "). Unknown repository port: " + reponame); } final Class<? extends AbstractRepository> repositoryType = port.repositoryType(); if (!repositoryType.isAssignableFrom(repository.getClass())) { throw new AnalysisConfigurationException("Failed to connect plugin '" + this.getName() + "' (" + this.getPluginName() + ") to repository '" + repository.getName() + "' (" + repository.getRepositoryName() + "). Expected RepositoryType: " + repositoryType.getName() + " Found: " + repository.getClass().getName()); } synchronized (this) { if (this.registeredRepositories.containsKey(reponame)) { throw new AnalysisConfigurationException("Failed to connect plugin '" + this.getName() + "' (" + this.getPluginName() + ") to repository '" + repository.getName() + "' (" + repository.getRepositoryName() + "). RepositoryPort already connected: " + reponame); } this.registeredRepositories.put(reponame, repository); } }
/** * This is the abstract base for a filter processing execution traces. * * @author Andre van Hoorn * * @since 1.1 */ @Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractExecutionTraceProcessingFilter extends AbstractTraceProcessingFilter { /** * Creates a new instance of this class using the given parameters. * * @param configuration * The configuration for this component. * @param projectContext * The project context for this component. */ public AbstractExecutionTraceProcessingFilter(final Configuration configuration, final IProjectContext projectContext) { super(configuration, projectContext); } }
/** * {@inheritDoc} */ @Override public final String[] getAllRepositoryPortNames() { final List<String> repositoryNames = new LinkedList<>(); final Plugin annotation = this.getClass().getAnnotation(Plugin.class); for (final RepositoryPort repositoryPort : annotation.repositoryPorts()) { repositoryNames.add(repositoryPort.name()); } return repositoryNames.toArray(new String[repositoryNames.size()]); }
@Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractMessageTraceProcessingFilter extends AbstractTraceProcessingFilter {
@Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractInvalidExecutionTraceProcessingFilter extends AbstractTraceProcessingFilter {
@Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractInvalidExecutionTraceProcessingFilter extends AbstractTraceProcessingFilter {
@Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractMessageTraceProcessingFilter extends AbstractTraceProcessingFilter {
@RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class) }) public class AggregatedAllocationComponentOperationCallTreeFilter extends AbstractAggregatedCallTreeFilter<AllocationComponentOperationPair> {
@RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class) }) public class AggregatedAssemblyComponentOperationCallTreeFilter extends AbstractAggregatedCallTreeFilter<AssemblyComponentOperationPair> {
@RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class) }) public class AggregatedAllocationComponentOperationCallTreeFilter extends AbstractAggregatedCallTreeFilter<AllocationComponentOperationPair> {
@RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class) }) public class AggregatedAssemblyComponentOperationCallTreeFilter extends AbstractAggregatedCallTreeFilter<AssemblyComponentOperationPair> {
@Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractDependencyGraphFilter<T extends ISystemModelElement> extends AbstractGraphProducingFilter<AbstractDependencyGraph<T>> {
@Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractDependencyGraphFilter<T extends ISystemModelElement> extends AbstractGraphProducingFilter<AbstractDependencyGraph<T>> {
@Plugin(repositoryPorts = @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class)) public abstract class AbstractTraceProcessingFilter extends AbstractTraceAnalysisFilter {
@Plugin(repositoryPorts = { @RepositoryPort(name = AbstractTraceAnalysisFilter.REPOSITORY_PORT_NAME_SYSTEM_MODEL, repositoryType = SystemModelRepository.class) }) public abstract class AbstractTraceAnalysisFilter extends AbstractFilterPlugin {