1 #ifdef USE_QUAL
2 
3 /**
4  * Adds DownCastBase(long cPtr, boolean owner) method for the layout package extension
5  */
6 %typemap(javacode) QualExtension
7 %{
8 	/**
9          * @internal
10          */
DowncastSBasePlugin(long cPtr,boolean owner)11 	public SBasePlugin DowncastSBasePlugin(long cPtr, boolean owner)
12 	{
13 		if (cPtr == 0) return null;
14 
15 		SBasePlugin sbp = new SBasePlugin(cPtr, false);
16 		SBase sb = sbp.getParentSBMLObject();
17 
18     if (sb instanceof Model)
19     {
20       return new QualModelPlugin(cPtr, owner);
21     }
22 
23 		switch( sb.getTypeCode() )
24 		{
25 			case (int) libsbml.SBML_MODEL:
26 				return new QualModelPlugin(cPtr,owner);
27 			default:
28 				return new SBasePlugin(cPtr,owner);
29 		}
30 	}
31 
32 	/**
33          * @internal
34          */
DowncastSBase(long cPtr,boolean owner)35 	public SBase DowncastSBase(long cPtr, boolean owner)
36 	{
37 		if (cPtr == 0) return null;
38 
39 		SBase sb = new SBase(cPtr, false);
40 		switch( sb.getTypeCode() )
41 		{
42 			case (int) libsbml.SBML_LIST_OF:
43 				String name = sb.getElementName();
44 		       if(name.equals("listOfFunctionTerms"))
45 			     {
46 		           return new ListOfFunctionTerms(cPtr, owner);
47            }
48 		       else if(name.equals("listOfInputs"))
49 			     {
50 		           return new ListOfInputs(cPtr, owner);
51            }
52 		       else if(name.equals("listOfOutputs"))
53 			     {
54 		           return new ListOfOutputs(cPtr, owner);
55            }
56 		       else if(name.equals("listOfQualitativeSpecies"))
57 			     {
58 		           return new ListOfQualitativeSpecies(cPtr, owner);
59            }
60 		       else if(name.equals("listOfTransitions"))
61 			     {
62 		           return new ListOfTransitions(cPtr, owner);
63            }
64 
65 		       return new ListOf(cPtr, owner);
66 
67 			case (int) libsbml.SBML_QUAL_QUALITATIVE_SPECIES:
68 				return new QualitativeSpecies(cPtr, owner);
69 
70 			case (int) libsbml.SBML_QUAL_TRANSITION:
71 				return new Transition(cPtr, owner);
72 
73 			case (int) libsbml.SBML_QUAL_INPUT:
74 				return new Input(cPtr, owner);
75 
76 			case (int) libsbml.SBML_QUAL_OUTPUT:
77 				return new Output(cPtr, owner);
78 
79 			case (int) libsbml.SBML_QUAL_FUNCTION_TERM:
80 				return new FunctionTerm(cPtr, owner);
81 
82 			case (int) libsbml.SBML_QUAL_DEFAULT_TERM:
83 				return new DefaultTerm(cPtr, owner);
84 
85 			default:
86 				return new SBase(cPtr, owner);
87 		}
88 	}
89 
90 	%}
91 
92 COVARIANT_RTYPE_CLONE(QualExtension)
93 COVARIANT_RTYPE_CLONE(Transition)
94 COVARIANT_RTYPE_CLONE(FunctionTerm)
95 COVARIANT_RTYPE_CLONE(DefaultTerm)
96 COVARIANT_RTYPE_CLONE(QualitativeSpecies)
97 COVARIANT_RTYPE_CLONE(Input)
98 COVARIANT_RTYPE_CLONE(Output)
99 COVARIANT_RTYPE_CLONE(ListOfFunctionTerms)
100 COVARIANT_RTYPE_CLONE(ListOfInputs)
101 COVARIANT_RTYPE_CLONE(ListOfOutputs)
102 COVARIANT_RTYPE_CLONE(ListOfQualitativeSpecies)
103 COVARIANT_RTYPE_CLONE(ListOfTransitions)
104 
105 COVARIANT_RTYPE_LISTOF_GET_REMOVE(Transition)
106 COVARIANT_RTYPE_LISTOF_GET_REMOVE(FunctionTerm)
107 COVARIANT_RTYPE_LISTOF_GET_REMOVE(Input)
108 COVARIANT_RTYPE_LISTOF_GET_REMOVE(Output)
109 COVARIANT_RTYPE_LISTOF_GET_REMOVE(QualitativeSpecies)
110 
111 SBMLCONSTRUCTOR_EXCEPTION(QualPkgNamespaces)
112 SBMLCONSTRUCTOR_EXCEPTION(Transition)
113 SBMLCONSTRUCTOR_EXCEPTION(FunctionTerm)
114 SBMLCONSTRUCTOR_EXCEPTION(DefaultTerm)
115 SBMLCONSTRUCTOR_EXCEPTION(QualitativeSpecies)
116 SBMLCONSTRUCTOR_EXCEPTION(Input)
117 SBMLCONSTRUCTOR_EXCEPTION(Output)
118 SBMLCONSTRUCTOR_EXCEPTION(ListOfFunctionTerms)
119 SBMLCONSTRUCTOR_EXCEPTION(ListOfInputs)
120 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutputs)
121 SBMLCONSTRUCTOR_EXCEPTION(ListOfQualitativeSpecies)
122 SBMLCONSTRUCTOR_EXCEPTION(ListOfTransitions)
123 
124 #endif  /* USE_QUAL */
125