@Override public void visitFunctionSignature(FunctionSignature functionSignature) { super.visitFunctionSignature(functionSignature); Function function = functionSignature.getFunction(); Identifier name = typeConverter.inferCallBackName(functionSignature, false, false, null); Identifier identifier = typeConverter.computeCallbackIdentifierInJava(functionSignature); functionSignature.setResolvedJavaIdentifier(identifier); if (function != null) { if (functionSignature.findParentOfType(Struct.class) == null) { getList(callbacksByLibrary, getLibrary(functionSignature)).add(functionSignature); } if (name != null) { callbacksByName.put(name, functionSignature); if (identifier != null) { callbacksFullNames.add(identifier); } } } }
@Override public void visitFunctionSignature(FunctionSignature functionSignature) { super.visitFunctionSignature(functionSignature); Function function = functionSignature.getFunction(); Identifier name = typeConverter.inferCallBackName(functionSignature, false, false, null); Identifier identifier = typeConverter.computeCallbackIdentifierInJava(functionSignature); functionSignature.setResolvedJavaIdentifier(identifier); if (function != null) { if (functionSignature.findParentOfType(Struct.class) == null) { getList(callbacksByLibrary, getLibrary(functionSignature)).add(functionSignature); } if (name != null) { callbacksByName.put(name, functionSignature); if (identifier != null) { callbacksFullNames.add(identifier); } } } }
DeclarationsHolder holder = functionSignature.findParentOfType(DeclarationsHolder.class); Function f = functionSignature.getFunction(); if (holder != null && f != null && !isNull(f.getName())) {
DeclarationsHolder holder = functionSignature.findParentOfType(DeclarationsHolder.class); Function f = functionSignature.getFunction(); if (holder != null && f != null && !isNull(f.getName())) {
public Identifier computeCallbackIdentifierInJava(FunctionSignature fs) { Identifier name = inferCallBackName(fs, false, false, null); if (name == null) { return null; } String library = result.getLibrary(fs); if (library == null) { return null; } name = name.clone(); Struct parentStruct = fs.findParentOfType(Struct.class); //Struct parentStruct = s.findParentOfType(Struct.class); if (parentStruct != null) { return ident(getTaggedTypeIdentifierInJava(parentStruct), name); } else { return libMember(result.getLibraryClassFullName(library), null, name); } } }
public Identifier computeCallbackIdentifierInJava(FunctionSignature fs) { Identifier name = inferCallBackName(fs, false, false, null); if (name == null) { return null; } String library = result.getLibrary(fs); if (library == null) { return null; } name = name.clone(); Struct parentStruct = fs.findParentOfType(Struct.class); //Struct parentStruct = s.findParentOfType(Struct.class); if (parentStruct != null) { return ident(getTaggedTypeIdentifierInJava(parentStruct), name); } else { return libMember(result.getLibraryClassFullName(library), null, name); } } }
public void convertCallbacks(List<FunctionSignature> functionSignatures, Signatures signatures, DeclarationsHolder out, Identifier libraryClass) { if (functionSignatures != null) { for (FunctionSignature functionSignature : functionSignatures) { if (functionSignature.findParentOfType(Struct.class) != null) { continue; } Arg a = functionSignature.findParentOfType(Arg.class); if (a != null && a.getParentElement() == null) { continue;//TODO understand why we end up having an orphan Arg here !!!! } convertCallback(functionSignature, signatures, out, libraryClass); } } }
public void convertCallbacks(List<FunctionSignature> functionSignatures, Signatures signatures, DeclarationsHolder out, Identifier libraryClass) { if (functionSignatures != null) { for (FunctionSignature functionSignature : functionSignatures) { if (functionSignature.findParentOfType(Struct.class) != null) { continue; } Arg a = functionSignature.findParentOfType(Arg.class); if (a != null && a.getParentElement() == null) { continue;//TODO understand why we end up having an orphan Arg here !!!! } convertCallback(functionSignature, signatures, out, libraryClass); } } }