/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ package org.ebayopensource.turmeric.eclipse.resources.model; import org.ebayopensource.turmeric.eclipse.core.model.services.ServiceFromWsdlParamModel; import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAProjectConstants; import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAProjectConstants.InterfaceSourceType; import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAProjectConstants.ServiceImplType; import org.ebayopensource.turmeric.eclipse.soatools.configtool.ConfigTool.ISOAServiceConfig; /** * The Class SOAImplMetadata. * * @author smathew */ public class SOAImplMetadata extends SOAConsumerMetadata implements ISOAServiceConfig{ private SOAIntfMetadata intfMetadata; private String serviceImplProjectName; private String implVersion; private String supportedVersion; private String group; private String targetNamespace; private String fullyQualifiedServiceName; private String serviceImplClassName; private String messageProtocol; private ServiceImplType serviceImplType = ServiceImplType.SERVICE_IMPL; /** * Create an instance. * @param paramModel parameter model from Wsdl * @param intfData interface data * @return an instance of SOAImplMetadata */ public static SOAImplMetadata create(ServiceFromWsdlParamModel paramModel, SOAIntfMetadata intfData) { SOAImplMetadata metadata = new SOAImplMetadata(); metadata.setServiceImplClassName(paramModel.getServiceImpl()); metadata.setIntfMetadata(intfData); metadata.setImplVersion(intfData.getServiceVersion()); metadata.setServiceImplProjectName(intfData.getServiceName() + SOAProjectConstants.IMPL_PROJECT_SUFFIX); metadata.setBaseConsumerSrcDir(paramModel.getBaseConsumerSrcDir()); metadata.setServiceImplType(paramModel.getServiceImplType()); return metadata; } /** * Called from SOA Propery Page, Step by step filling of data. * * @param serviceImplProjectName implementation project name * @param baseConsumerSrcDir the base consumer source directory * @return an instace of SOAImplMetadata */ public static SOAImplMetadata create(String serviceImplProjectName, String baseConsumerSrcDir) { SOAImplMetadata metadata = new SOAImplMetadata(); metadata.setServiceImplProjectName(serviceImplProjectName); metadata.setBaseConsumerSrcDir(baseConsumerSrcDir); return metadata; } /** * {@inheritDoc} */ @Override public String getMetadataFileName() { return SOAProjectConstants.PROPS_FILE_SERVICE_IMPL; } /** * Gets the intf metadata. * * @return returns and instance of SOAIntfMetadata */ public SOAIntfMetadata getIntfMetadata() { if (intfMetadata == null) intfMetadata = SOAIntfMetadata.create(InterfaceSourceType.WSDL); return intfMetadata; } /** * Sets the intf metadata. * * @param intfMetadata the interface metadata */ public void setIntfMetadata(SOAIntfMetadata intfMetadata) { this.intfMetadata = intfMetadata; } /** * Gets the service impl project name. * * @return the service implementation project name */ public String getServiceImplProjectName() { return serviceImplProjectName; } /** * Sets the service impl project name. * * @param serviceImplName the name of the service implementation project */ public void setServiceImplProjectName(String serviceImplName) { this.serviceImplProjectName = serviceImplName; } /** * Gets the impl version. * * @return the implementation version */ public String getImplVersion() { return implVersion; } /** * Sets the impl version. * * @param implVersion the implementation version */ public void setImplVersion(String implVersion) { this.implVersion = implVersion; } /** * Gets the target namespace. * * @return the target namespace */ public String getTargetNamespace() { return targetNamespace; } /** * Gets the fully qualified service name. * * @return the fully qualifies service name */ public String getFullyQualifiedServiceName() { return fullyQualifiedServiceName; } /** * Gets the supported version. * * @return the supported version */ public String getSupportedVersion() { return supportedVersion; } /** * Gets the group. * * @return the group */ public String getGroup() { return group; } /** * Gets the service name. * * @return the service name */ public String getServiceName() { return getIntfMetadata().getServiceName(); } /** * Gets the service interface class name. * * @return the service interface class name */ public String getServiceInterfaceClassName() { return getIntfMetadata().getServiceInterface(); } /** * {@inheritDoc} */ @Override public String getServiceImplClassName() { return serviceImplClassName; } /** * {@inheritDoc} */ @Override public void setSupportedVersion(String supportedVersion) { this.supportedVersion = supportedVersion; } /** * {@inheritDoc} */ @Override public void setGroup(String group) { this.group = group; } /** * {@inheritDoc} */ @Override public void setTargetNamespace(String targetNamespace) { this.targetNamespace = targetNamespace; } /** * {@inheritDoc} */ @Override public void setServiceName(String serviceName) { getIntfMetadata().setServiceName(serviceName); } /** * {@inheritDoc} */ @Override public void setFullyQualifiedServiceName(String fullyQualifiedServiceName) { this.fullyQualifiedServiceName = fullyQualifiedServiceName; } /** * {@inheritDoc} */ @Override public void setServiceInterfaceClassName(String serviceInterfaceClassName) { getIntfMetadata().setServiceInterface(serviceInterfaceClassName); } /** * {@inheritDoc} */ @Override public void setServiceImplClassName(String serviceImplClassName) { this.serviceImplClassName = serviceImplClassName; } /** * {@inheritDoc} */ @Override public String getMessageProtocol() { return messageProtocol; } /** * {@inheritDoc} */ @Override public void setMessageProtocol(String messageProtocol) { this.messageProtocol = messageProtocol; } /** * @return */ public ServiceImplType getServiceImplType() { return serviceImplType; } /** * @param serviceImplType */ public void setServiceImplType(ServiceImplType serviceImplType) { this.serviceImplType = serviceImplType; } }