/******************************************************************************* | |
* Copyright (c) 2009 by SAP AG, Walldorf. | |
* 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: | |
* SAP AG - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.jst.ws.jaxws.dom.integration.validation; | |
import org.eclipse.jst.ws.jaxws.dom.runtime.DomUtil; | |
import org.eclipse.jst.ws.jaxws.dom.runtime.api.IDOM; | |
import org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebServiceProject; | |
import org.eclipse.jst.ws.jaxws.dom.runtime.api.IWsDOMRuntimeExtension; | |
import org.eclipse.jst.ws.jaxws.dom.runtime.api.WsDOMLoadCanceledException; | |
import org.eclipse.jst.ws.jaxws.dom.runtime.api.WsDOMRuntimeManager; | |
import org.eclipse.jst.ws.jaxws.utils.ContractChecker; | |
import org.eclipse.wst.validation.internal.operations.WorkbenchContext; | |
import org.eclipse.wst.validation.internal.provisional.core.IValidationContext; | |
/** | |
* {@link IValidationContext} implementor. Acts as helper class for validation. Used | |
* by {@link DomValidationManager} to retrieve DOM model. | |
* | |
* @author Georgi Vachkov | |
*/ | |
@SuppressWarnings("restriction") | |
public class DomValidationHelper extends WorkbenchContext | |
{ | |
/** | |
* Constructor - registers models that this helper will support. Registration is done | |
* by setting model 'symbolicName' and method to be called for this method to be retrieved | |
*/ | |
public DomValidationHelper() | |
{ | |
registerModel("webServiceProject", "getWebServiceProject", new Class[] {String.class}); //$NON-NLS-1$ //$NON-NLS-2$ | |
} | |
/** | |
* Executed by {@link WorkbenchContext} when {@link WorkbenchContext#loadModel(String, Object[])} is called | |
* and finds the corresponding to {@link #getProject()} {@link IWebServiceProject} | |
* | |
* @param domId | |
* @return found {@link IWebServiceProject} or <code>null</code> | |
*/ | |
public IWebServiceProject getWebServiceProject(final String domId) | |
{ | |
ContractChecker.nullCheckParam(domId, "domId"); //$NON-NLS-1$ | |
final IWsDOMRuntimeExtension domRuntime = getDomRuntime(domId); | |
if (domRuntime == null) { | |
return null; | |
} | |
try { | |
final IDOM dom = domRuntime.getDOM(); | |
if (dom==null) { | |
return null; | |
} | |
return DomUtil.INSTANCE.findProjectByName(dom, getProject().getName()); | |
} | |
catch (WsDOMLoadCanceledException e) { // $JL-EXC$ | |
return null; | |
} | |
} | |
protected IWsDOMRuntimeExtension getDomRuntime(final String domId) { | |
return WsDOMRuntimeManager.instance().getDOMRuntime(domId); | |
} | |
} |