Mapping Hierarchy - loicoudot/java4cpp-core GitHub Wiki
By default, no superclass nor interfaces are exported in the C++ proxies.
You can activate the generation of the superclass proxies and respect the hierarchy.
Annotation case:
package demo;
@Java4cpp(superclass = true)
public class Sample extends Superclass {
}
XML case:
<mappings>
<classes>
<class class="demo.Sample" superclass="true">
</class>
</classes>
</mappings>
will produce:
namespace demo {
class Sample : public Superclass {
};
}
You can select which of the interfaces you wants in your resulting C++ proxies. You have two ways for selecting interfaces :
- export all interfaces, and manually lists interfaces you don't want to generate
- export no interface, and manually lists interfaces you want to generate
Annotations case:
package demo;
@Java4cpp(interfaces = true, noWrappeInterfaces = { Interface2.class })
public class Sample implements Interface1, Interfaces2 {
}
or
package demo;
@Java4cpp(wrappeInterfaces = { Interface1.class })
public class Sample implements Interface1, Interfaces2 {
}
XML case :
You specify the interface by is full java name.
<mappings>
<classes>
<class class="demo.Sample" interfaceAll="true">
<interfaces>
<noWrappes>
<noWrappe>demo.Interface2</noWrappe>
</noWrappes>
</interfaces>
</class>
</classes>
</mappings>
or
<mappings>
<classes>
<class class="demo.Sample" interfaceAll="false">
<interfaces>
<wrappes>
<wrappe>demo.Interface1</wrappe>
</wrappes>
</interfaces>
</class>
</classes>
</mappings>
will produce:
namespace demo {
class Sample : public Interface1 {
};
}