blob: 3982c6d06a5ba592a026b4839e7aa49742e24185 [file] [log] [blame]
/*
* Copyright 2003-2004 The Apache Software Foundation.
*
* 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
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* @author Susantha Kumara (skumara@virtusa.com)
*
*/
#ifdef WIN32
#pragma warning (disable : 4786)
#endif
#include "BeanClass.h"
BeanClass::BeanClass()
{
}
BeanClass::~BeanClass()
{
for (list<Variable*>::iterator it = m_Variables.begin();
it != m_Variables.end(); it++)
{
delete *it;
}
}
void BeanClass::AddVariable(Variable *pVar)
{
m_Variables.push_back(pVar);
}
void BeanClass::SetClassName(string &sName)
{
m_Name = sName;
}
int BeanClass::GenerateSerializerAndDeSerializerImpl(File &file)
{
list<Variable*>::iterator it;
file << "//Parameters and wrapper methos to manipulate Point" << endl;
file << "static const AxisChar* Axis_URI_" << m_Name <<
" = \"http://www.opensource.lk/" << m_Name << "\";" << endl;
file << "static const AxisChar* Axis_TypeName_" << m_Name <<
" = \"" << m_Name << "\";" << endl;
file << endl;
file << "int Axis_DeSerialize_" << m_Name << "(" << m_Name <<
"* p, IWrapperSoapDeSerializer *pDZ)" << endl;
file << "{" << endl;
for (it = m_Variables.begin(); it != m_Variables.end(); it++)
{
(*it)->GenerateDeserializerImpl(file);
}
file << "\treturn AXIS_SUCCESS;" << endl;
file << "}" << endl;
file << endl;
file << "int Axis_Serialize_" << m_Name << "(" << m_Name <<
"* p, IWrapperSoapSerializer& pSZ, bool bArray = false)" << endl;
file << "{" << endl;
file << "\tif (bArray)" << endl;
file << "\t{" << endl;
file << "\tpSZ << \"<\" << Axis_TypeName_" << m_Name << " << \">\";"
<< endl;
file << "\t}" << endl;
file << "\telse" << endl;
file << "\t{" << endl;
file << "\t\tconst AxisChar* sPrefix = pSZ.getNewNamespacePrefix();"
<< endl;
/* file << "\tm_URI = \"" << g_ClassNamespaces[m_Name] << "\";" << endl; */
file << "\t\tpSZ << \"<\" << Axis_TypeName_" << m_Name <<
"<< \" xsi:type=\\\"\" << sPrefix <<\":\" << Axis_TypeName_"
<< m_Name << " << \" xmlns:\" << sPrefix << \"=\\\"\" << Axis_URI_"
<< m_Name << " << \"\\\">\";" << endl;
file << "\t}" << endl;
for (it = m_Variables.begin(); it != m_Variables.end(); it++)
{
(*it)->GenerateSerializerImpl(file);
}
file << "\tpSZ << \"</\" << Axis_TypeName_" << m_Name << " << \">\";" <<
endl;
file << "\treturn AXIS_SUCCESS;" << endl;
file << "}" << endl;
file << endl;
file << "int Axis_GetSize_" << m_Name << "(" << m_Name << "* p)" << endl;
file << "{" << endl;
file << "\treturn sizeof(" << m_Name <<");" << endl;
file << "}" << endl;
file << endl;
file << "void Axis_Delete_" << m_Name << "(" << m_Name
<< "* p, bool bArray = false, int nSize=0)" << endl;
file << "{" << endl;
file << "\tif (bArray)" << endl;
file << "\t\tdelete [] p;" << endl;
file << "else" << endl;
file << "delete p;" << endl;
file << "}" << endl;
return 0;
}
int BeanClass::GenerateWSDLSchema(File &file)
{
file << "<complexType name=\"" << m_Name << "\">" << endl;
file << "<all>"<< endl;
for (list<Variable*>::iterator it = m_Variables.begin();
it != m_Variables.end(); it++)
{
(*it)->GenerateWSDLSchema(file);
}
file << "</all>" << endl;
file << "</complexType>" << endl;
return 0;
}