Package com.jogamp.gluegen
Class FunctionEmitter
- java.lang.Object
-
- com.jogamp.gluegen.FunctionEmitter
-
- Direct Known Subclasses:
CMethodBindingEmitter
,JavaMethodBindingEmitter
public abstract class FunctionEmitter extends Object
Generic function emitter to produce C (JNI) or Java code stubs to itsCodeUnit
, invoking a native function as described viaMethodBinding
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FunctionEmitter.EmissionModifier
-
Field Summary
Fields Modifier and Type Field Description protected MethodBinding
binding
protected JavaConfiguration
cfg
static FunctionEmitter.EmissionModifier
STATIC
protected CodeUnit
unit
-
Constructor Summary
Constructors Constructor Description FunctionEmitter(FunctionEmitter arg)
Makes this FunctionEmitter a copy of the passed one.FunctionEmitter(MethodBinding binding, CodeUnit unit, boolean isInterface, JavaConfiguration configuration)
Constructs the FunctionEmitter with a CommentEmitter that emits nothing.
-
Method Summary
-
-
-
Field Detail
-
STATIC
public static final FunctionEmitter.EmissionModifier STATIC
-
binding
protected final MethodBinding binding
-
unit
protected final CodeUnit unit
-
cfg
protected final JavaConfiguration cfg
-
-
Constructor Detail
-
FunctionEmitter
public FunctionEmitter(MethodBinding binding, CodeUnit unit, boolean isInterface, JavaConfiguration configuration)
Constructs the FunctionEmitter with a CommentEmitter that emits nothing.
-
FunctionEmitter
public FunctionEmitter(FunctionEmitter arg)
Makes this FunctionEmitter a copy of the passed one.
-
-
Method Detail
-
isInterface
public final boolean isInterface()
-
getBinding
public final MethodBinding getBinding()
-
getUnit
public final CodeUnit getUnit()
-
addModifiers
public void addModifiers(Iterator<FunctionEmitter.EmissionModifier> mi)
-
addModifier
public void addModifier(FunctionEmitter.EmissionModifier m)
-
removeModifier
public boolean removeModifier(FunctionEmitter.EmissionModifier m)
-
clearModifiers
public void clearModifiers()
-
hasModifier
public boolean hasModifier(FunctionEmitter.EmissionModifier m)
-
getModifiers
public Iterator<FunctionEmitter.EmissionModifier> getModifiers()
-
getInterfaceName
public abstract String getInterfaceName()
-
getImplName
public abstract String getImplName()
-
getNativeName
public abstract String getNativeName()
-
getCSymbol
public abstract FunctionSymbol getCSymbol()
-
emit
public final void emit()
Emit the function to thegetUnit()
-
setCommentEmitter
public void setCommentEmitter(CommentEmitter cEmitter)
Set the object that will emit the comment for this function. If the parameter is null, no comment will be emitted.
-
getCommentEmitter
public CommentEmitter getCommentEmitter()
Get the comment emitter for this FunctionEmitter. The return value may be null, in which case no comment emitter has been set.
-
emitAdditionalCode
protected void emitAdditionalCode()
-
emitDocComment
protected void emitDocComment()
-
emitSignature
protected final void emitSignature()
-
appendSignature
protected StringBuilder appendSignature(StringBuilder buf)
-
emitModifiers
protected final int emitModifiers()
-
appendModifiers
protected int appendModifiers(StringBuilder buf)
-
getBaseIndentString
protected String getBaseIndentString()
-
getCommentStartString
protected String getCommentStartString()
-
getCommentEndString
protected String getCommentEndString()
-
emitReturnType
protected final void emitReturnType()
-
appendReturnType
protected abstract StringBuilder appendReturnType(StringBuilder buf)
-
emitName
protected final void emitName()
-
appendName
protected abstract StringBuilder appendName(StringBuilder buf)
-
emitArguments
protected final int emitArguments()
Returns the number of arguments emitted.
-
appendArguments
protected abstract int appendArguments(StringBuilder buf)
Returns the number of arguments emitted.
-
emitBody
protected abstract void emitBody()
-
-