/******************************************************************************* | |
* Copyright (c) 2011 Mia-Software and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v2.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/epl-v20.html | |
* | |
* Contributors: | |
* Nicolas Bros (Mia-Software) - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.modisco.infra.discovery.ui.internal.wizards; | |
import java.util.ArrayList; | |
import java.util.List; | |
import org.eclipse.modisco.infra.discovery.catalog.DirectionKind; | |
import org.eclipse.modisco.infra.discovery.core.AbstractDiscoverer; | |
import org.eclipse.modisco.infra.discovery.core.AbstractModelDiscoverer; | |
/** | |
* Represents the parameters that will be added to the discoverer (through | |
* inheritance) if the discoverer extends {@link AbstractModelDiscoverer} | |
* (instead of just {@link AbstractDiscoverer}). | |
*/ | |
public class AbstractModelDiscovererParameters { | |
private static AbstractModelDiscovererParameters instance; | |
private final List<DiscoveryParameterLine> parameters = new ArrayList<DiscoveryParameterLine>(); | |
public AbstractModelDiscovererParameters() { | |
DiscoveryParameterLine targetModel = new DiscoveryParameterLine(); | |
targetModel.setName("targetModel"); //$NON-NLS-1$ | |
targetModel.setType("org.eclipse.emf.ecore.resource.Resource"); //$NON-NLS-1$ | |
targetModel | |
.setDescription("A model container, usually an output of the discovery but which might be provided also as input."); //$NON-NLS-1$ | |
targetModel.setDirection(DirectionKind.INOUT); | |
targetModel.setRequired(false); | |
this.parameters.add(targetModel); | |
DiscoveryParameterLine serializeTarget = new DiscoveryParameterLine(); | |
serializeTarget.setName("serializeTarget"); //$NON-NLS-1$ | |
serializeTarget.setType("boolean"); //$NON-NLS-1$ | |
serializeTarget | |
.setDescription("A boolean indicating if some target model serialization is wished. Save behavior depends on Discoverer implementation. The standard behavior is to use XMI serialization."); //$NON-NLS-1$ | |
serializeTarget.setDirection(DirectionKind.IN); | |
serializeTarget.setRequired(false); | |
this.parameters.add(serializeTarget); | |
DiscoveryParameterLine targetURI = new DiscoveryParameterLine(); | |
targetURI.setName("targetURI"); //$NON-NLS-1$ | |
targetURI.setType("org.eclipse.emf.common.util.URI"); //$NON-NLS-1$ | |
targetURI | |
.setDescription("A location for optional model serialization. Save behavior depends on Discoverer implementation."); //$NON-NLS-1$ | |
targetURI.setDirection(DirectionKind.IN); | |
targetURI.setRequired(false); | |
this.parameters.add(targetURI); | |
} | |
public static AbstractModelDiscovererParameters getInstance() { | |
if (AbstractModelDiscovererParameters.instance == null) { | |
AbstractModelDiscovererParameters.instance = new AbstractModelDiscovererParameters(); | |
} | |
return AbstractModelDiscovererParameters.instance; | |
} | |
public List<DiscoveryParameterLine> getParameters() { | |
return this.parameters; | |
} | |
public static boolean isInheritedParameter(final Object param) { | |
return getInstance().getParameters().contains(param); | |
} | |
} |