/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.editor.properties;
import org.eclipse.jface.viewers.IFilter;
import de.rcenvironment.core.component.model.api.ComponentDescription;
import de.rcenvironment.core.component.workflow.model.api.WorkflowNode;
import de.rcenvironment.core.gui.workflow.parts.WorkflowNodePart;
/**
* Abstract base class to filter for a component identifier.
*
* @author Heinrich Wendel
*/
public abstract class ComponentFilter implements IFilter {
@Override
public boolean select(final Object object) {
boolean result = false;
WorkflowNode workflowNode = null;
if (object instanceof WorkflowNodePart) {
workflowNode = (WorkflowNode) ((WorkflowNodePart) object).getModel();
} else if (object instanceof WorkflowNode) {
workflowNode = (WorkflowNode) object;
}
if (workflowNode != null) {
final ComponentDescription componentDescription = workflowNode.getComponentDescription();
result |= filterComponentName(componentDescription.getIdentifier());
result |= filterComponentDescripton(componentDescription);
}
return result;
}
/**
* Must return whether the given component identifier will be accepted.
*
* @param componentId name of the component
* @return true, if the component with the given component identifier will be accepted
*/
public abstract boolean filterComponentName(String componentId);
/**
* Must return whether the component with the given {@link ComponentDescription} will be accepted.
*
* @param componentDescription {@link ComponentDescription} of the component
* @return true, if the component with the given {@link ComponentDescription} will be accepted
*/
public boolean filterComponentDescripton(final ComponentDescription componentDescription) {
return false;
}
}