コード例 #1
0
  Struct publicStaticClass(
      Identifier name,
      Identifier parentName,
      Struct.Type type,
      Element toCloneCommentsFrom,
      Identifier... interfaces) {
    Struct cl = new Struct();
    cl.setType(type);
    cl.setTag(name);
    if (parentName != null) cl.setParents(typeRef(parentName));
    if (type == Struct.Type.JavaInterface)
      for (Identifier inter : interfaces) cl.addParent(typeRef(inter));
    else for (Identifier inter : interfaces) cl.addProtocol(typeRef(inter));

    if (!result.config.noComments)
      cl.importComments(toCloneCommentsFrom, getFileCommentContent(toCloneCommentsFrom));

    cl.addModifiers(ModifierType.Public, ModifierType.Static);
    return cl;
  }
コード例 #2
0
  public Struct convertCallback(
      FunctionSignature functionSignature, Signatures signatures, Identifier callerLibraryName) {
    Identifier name =
        result.typeConverter.inferCallBackName(functionSignature, true, false, callerLibraryName);
    if (name == null) return null;

    name = result.typeConverter.getValidJavaArgumentName(name);

    Function function = functionSignature.getFunction();

    int i = 1;
    Identifier chosenName = name;
    while (!(signatures.addClass(chosenName))) {
      chosenName = ident(name.toString() + (++i));
    }

    Element parent = functionSignature.getParentElement();
    Element comel = parent != null && parent instanceof TypeDef ? parent : functionSignature;

    Struct callbackStruct = new Struct();
    configureCallbackStruct(callbackStruct);
    // callbackStruct.setParents(Arrays.asList(getCallbackType(functionSignature, chosenName)));
    callbackStruct.setTag(ident(chosenName));
    if (!result.config.noComments)
      callbackStruct.addToCommentBefore(
          comel.getCommentBefore(), comel.getCommentAfter(), getFileCommentContent(comel));
    convertFunction(function, new Signatures(), true, callbackStruct, callerLibraryName, -1);
    for (Declaration d : callbackStruct.getDeclarations()) {
      if (d instanceof Function) {
        callbackStruct.addAnnotations(callbackStruct.getAnnotations());
        callbackStruct.setAnnotations(null);
        break;
      }
    }
    return callbackStruct;
  }