Mapping Hierarchy - loicoudot/java4cpp-core GitHub Wiki

By default, no superclass nor interfaces are exported in the C++ proxies.

Superclass

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 {
   };
}

Interfaces

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 {
   };
}
⚠️ **GitHub.com Fallback** ⚠️