//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.publishing.services; import java.util.List; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.epf.library.configuration.ElementRealizer; import org.eclipse.epf.uma.MethodConfiguration; import org.eclipse.epf.uma.MethodElement; /** * ElementRealizer for process publishing. * Realizes the element based on the configuration, realize options, and the process closure. * * @author Jinhua Xi * @since 1.0 */ public class ProcessPublishingElementRealizer extends PublishingElementRealizer { /** * constructor * * @param config MethodConfiguration * @param validator ProcessPublishingContentValidator */ protected ProcessPublishingElementRealizer(MethodConfiguration config, ProcessPublishingContentValidator validator) { super(config, validator); } public static final ElementRealizer newProcessPublishingElementRealizer(MethodConfiguration config, ProcessPublishingContentValidator validator) { ProcessPublishingElementRealizer realizer = (ProcessPublishingElementRealizer) createElementRealizerExtension(config, ProcessPublishingElementRealizer_Type); if (realizer == null) { realizer = new ProcessPublishingElementRealizer(config, null); } realizer.validator = validator; return realizer; } /** * realize the element. * * @param element MethodElement * @return MethodElement the realized element. */ public MethodElement realize(MethodElement element) { return super.realize(element); } /** * realize the list of feature values and returns a new list of values * The new might be a re-sorting of the original list * or some of the values can be filtered out, depending on the detail implementation * Note: the list value passed in might be updated as well. * @param element MethodElement * @param feature EStructuralFeature * @param values List * @return List */ public List realize(MethodElement element, EStructuralFeature feature, List values) { List items = super.realize(element, feature, values); // // add the feature references in case the validator need feature-based reference information, // // for example, when publishing process, the output WPs in a Task should not be published // // it none of the TaskDescriptors for this task has reference to that WP. // if ( element instanceof TaskDescriptor ) { // Task t = (Task)realize(((TaskDescriptor)element).getTask()); // // ((ProcessPublishingContentValidator)validator).setElementReferences(t, items); // // } return items; } }