/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.modelgenerator.wsdl.ui.wizards.soap;
import java.util.Properties;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.osgi.util.NLS;
import org.teiid.designer.core.ModelerCore;
import org.teiid.designer.modelgenerator.wsdl.model.Operation;
import org.teiid.designer.modelgenerator.wsdl.ui.Messages;
import org.teiid.designer.query.IProcedureService;
import org.teiid.designer.query.IQueryService;
import org.teiid.designer.query.proc.wsdl.IWsdlRequestInfo;
/**
* @since 8.0
*/
public class RequestInfo extends ProcedureInfo implements IWsdlRequestInfo {
public RequestInfo(Operation operation, ProcedureGenerator generator) {
super(operation, ProcedureType.REQUEST, generator);
setProcedureName(getDefaultProcedureName());
}
@Override
public String getDefaultProcedureName() {
return getOperation().getName() + "_request";//$NON-NLS-1$
}
@Override
public IStatus validate() {
MultiStatus status = new MultiStatus(ProcedureGenerator.PLUGIN_ID, 0, null, null);
// Go through objects and look for problems
if( getProcedureName() == null) {
status.add(new Status(IStatus.ERROR, ProcedureGenerator.PLUGIN_ID,
NLS.bind(Messages.Error_Operation_0_RequestProcedureNameCannotBeNullOrEmpty,
getOperation().getName())));
}
IStatus nameStatus = getGenerator().getNameStatus(getProcedureName());
if( nameStatus.getSeverity() > IStatus.INFO) {
status.merge(nameStatus);
}
if( getBodyColumnInfoList().length == 0 ) {
status.add(new Status(IStatus.WARNING, ProcedureGenerator.PLUGIN_ID,
NLS.bind(Messages.Error_NoElementsDefinedForRequestProcedureForOperation_0,
getOperation().getName(), getOperation().getName())));
}
// Check Request Info
setChanged(false);
return status;
}
@Override
public String getSqlStringTemplate() {
return getSqlString(new Properties());
}
@SuppressWarnings("unused")
@Override
public String getSqlString(Properties properties) {
IQueryService queryService = ModelerCore.getTeiidQueryService();
IProcedureService procedureService = queryService.getProcedureService();
return procedureService.getSQLStatement(this, properties);
}
public boolean isMessageServiceMode() {
return getGenerator().getImportManager().isMessageServiceMode();
}
}