Fix for some older jdks
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9480 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
7d31be5880
commit
d06e64c468
1 changed files with 21 additions and 7 deletions
|
|
@ -101,6 +101,8 @@ public class director_classes_runme {
|
|||
|
||||
void makeCalls(Caller myCaller, Base myBase)
|
||||
{
|
||||
String baseSimpleName = getSimpleName(myBase.getClass());
|
||||
|
||||
myCaller.set(myBase);
|
||||
|
||||
DoubleHolder dh = new DoubleHolder(444.555);
|
||||
|
|
@ -111,26 +113,38 @@ public class director_classes_runme {
|
|||
if (myCaller.PtrCall(dh).getVal() != dh.getVal()) throw new RuntimeException("failed");
|
||||
|
||||
// Fully overloaded method test (all methods in base class are overloaded)
|
||||
if (!myCaller.FullyOverloadedCall(10).equals(myBase.getClass().getSimpleName() + "::FullyOverloaded(int)")) {
|
||||
System.out.println(myCaller.FullyOverloadedCall(10) + "----" + (myBase.getClass().getSimpleName() + "::FullyOverloaded(int)"));
|
||||
if (!myCaller.FullyOverloadedCall(10).equals(baseSimpleName + "::FullyOverloaded(int)")) {
|
||||
System.out.println(myCaller.FullyOverloadedCall(10) + "----" + (baseSimpleName + "::FullyOverloaded(int)"));
|
||||
throw new RuntimeException("failed");
|
||||
}
|
||||
if (!myCaller.FullyOverloadedCall(true).equals(myBase.getClass().getSimpleName() + "::FullyOverloaded(bool)")) throw new RuntimeException("failed");
|
||||
if (!myCaller.FullyOverloadedCall(true).equals(baseSimpleName + "::FullyOverloaded(bool)")) throw new RuntimeException("failed");
|
||||
|
||||
// Semi overloaded method test (some methods in base class are overloaded)
|
||||
if (!myCaller.SemiOverloadedCall(-678).equals(myBase.getClass().getSimpleName() + "::SemiOverloaded(int)")) throw new RuntimeException("failed");
|
||||
if (!myCaller.SemiOverloadedCall(-678).equals(baseSimpleName + "::SemiOverloaded(int)")) throw new RuntimeException("failed");
|
||||
if (!myCaller.SemiOverloadedCall(true).equals("Base" + "::SemiOverloaded(bool)")) throw new RuntimeException("failed");
|
||||
|
||||
// Default parameters methods test
|
||||
if (!(myCaller.DefaultParmsCall(10, 2.2)).equals(myBase.getClass().getSimpleName() + "::DefaultParms(int, double)")) throw new RuntimeException("failed");
|
||||
if (!(myCaller.DefaultParmsCall(10, 2.2)).equals(baseSimpleName + "::DefaultParms(int, double)")) throw new RuntimeException("failed");
|
||||
if (myBase instanceof JavaDerived) { // special handling for Java derived classes, there is no way to do this any other way
|
||||
if (!myCaller.DefaultParmsCall(10).equals(myBase.getClass().getSimpleName() + "::DefaultParms(int, double)")) throw new RuntimeException("failed");
|
||||
if (!myCaller.DefaultParmsCall(10).equals(baseSimpleName + "::DefaultParms(int, double)")) throw new RuntimeException("failed");
|
||||
} else {
|
||||
if (!myCaller.DefaultParmsCall(10).equals(myBase.getClass().getSimpleName() + "::DefaultParms(int)")) throw new RuntimeException("failed");
|
||||
if (!myCaller.DefaultParmsCall(10).equals(baseSimpleName + "::DefaultParms(int)")) throw new RuntimeException("failed");
|
||||
}
|
||||
|
||||
myCaller.reset();
|
||||
}
|
||||
|
||||
// Same as Class.getSimpleName() which is not present in all jdks
|
||||
static String getSimpleName(Class klass) {
|
||||
String fullName = klass.getName();
|
||||
Package packag = klass.getPackage();
|
||||
String simpleName = null;
|
||||
if (packag != null)
|
||||
simpleName = fullName.replaceAll(packag.getName() + ".", "");
|
||||
else
|
||||
simpleName = fullName;
|
||||
return simpleName;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue