Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * Copyright (C) 2013 Samuel Halliday
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * GNU General Public License for more details.
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see [].
 package com.github.fommil.netlib.generator;
 import java.util.List;

Generates the Java part of a JNI implementation of a netlib interface.
     name = "native-java",
     defaultPhase = .,
     requiresDependencyResolution = .
 public class NativeImplJavaGenerator extends AbstractJavaGenerator {

The interface that we are implementing.
   @Parameter(required = true)
   protected String implementing;

The default name of the native libraries. CSV.
   @Parameter(required = true)
   protected String natives;

The implementation that we are extending (if not specified, java.lang.UnsupportedOperationException may be thrown by excluded methods we are implementing).

See also:
   protected String extending;

Methods we don't support.
   protected String unsupported;
   protected String generate(List<Methodmethodsthrows Exception {
     List<Stringmembers = Lists.newArrayList();
     ST loader = .getInstanceOf("staticJniLoader");
     loader.add("prop"getTargetPackage() + "." + getTargetClassName() + ".natives");
     for (Method method : methods) {
       ST m = getTemplate(methodfalse);
       if (m == nullcontinue;
       if (hasOffsets(method))
         members.add(render(getTemplate(methodtrue), methodtrue));
     ST t = .getInstanceOf("implClass");
     t.add("parent" != null ?  : );
     return t.render();
   private ST getTemplate(Method methodboolean offsets) {
     ST m = .getInstanceOf("nativeImplMethod" + (offsets ? "_offsets" : ""));
     if ( != null && method.getName().matches()) {
       if ( == null)
         m = .getInstanceOf("unsupportedMethod");
        return null;
    return m;
  private String render(ST mMethod methodboolean offsets) {
    if (offsets && method.getReturnType() == .)
    return m.render();
New to GrepCode? Check out our FAQ X