1 /*
2     Copyright (c) 2008-2009 NetAllied Systems GmbH
3 
4     This file is part of COLLADASaxFrameworkLoader.
5 
6     Licensed under the MIT Open Source License,
7     for details please see LICENSE file or the website
8     http://www.opensource.org/licenses/mit-license.php
9 */
10 
11 #include "COLLADASaxFWLStableHeaders.h"
12 #include "COLLADASaxFWLCOLLADACsymbol.h"
13 
14 #include "MathMLASTVisitor.h"
15 
16 
17 namespace COLLADASaxFWL
18 {
19 
20 	//------------------------------
COLLADACsymbol(const SidAddress & sidAddress)21 	COLLADACsymbol::COLLADACsymbol( const SidAddress& sidAddress)
22 		: mSidAddress(sidAddress)
23 		, mFunctionName()
24 		, mFormulaUniqueId(COLLADAFW::UniqueId::INVALID)
25 		, mCSymbolType(PARAMETER)
26 		, mParameterList()
27 	{
28 
29 	}
30 
31 	//------------------------------
COLLADACsymbol(const String & functionName,const COLLADAFW::UniqueId & formulaUniqueId)32 	COLLADACsymbol::COLLADACsymbol( const String& functionName, const COLLADAFW::UniqueId& formulaUniqueId )
33 		: mSidAddress()
34 		, mFunctionName(functionName)
35 		, mFormulaUniqueId(formulaUniqueId)
36 		, mCSymbolType(FUNCTION)
37 		, mParameterList()
38 	{
39 
40 	}
41 
42     //------------------------------
~COLLADACsymbol()43 	COLLADACsymbol::~COLLADACsymbol()
44 	{
45 	}
46 
47 	//------------------------------
accept(MathML::AST::IVisitor * visitor) const48 	void COLLADACsymbol::accept( MathML::AST::IVisitor* visitor ) const
49 	{
50 		visitor->visit( this );
51 	}
52 
53 	//-----------------------------------------------------------------
clone(CloneFlags cloneFlags) const54 	MathML::AST::INode* COLLADACsymbol::clone(CloneFlags cloneFlags) const
55 	{
56 		COLLADACsymbol* copy = 0;
57 		if ( mCSymbolType == PARAMETER)
58 		{
59 			copy = new COLLADACsymbol( mSidAddress );
60 		}
61 		else
62 		{
63 			copy = new COLLADACsymbol( mFunctionName, mFormulaUniqueId );
64 		}
65 		return copy;
66 	}
67 
68 	//------------------------------
getFormulaUniqueId() const69 	const COLLADAFW::UniqueId& COLLADACsymbol::getFormulaUniqueId() const
70 	{
71 		return mFormulaUniqueId;
72 	}
73 
74 	//------------------------------
getFunctionName() const75 	const String& COLLADACsymbol::getFunctionName() const
76 	{
77 		return mFunctionName;
78 	}
79 
80 
81 } // namespace COLLADASaxFWL
82