public void addStaticInitializerStatements(List<Statement> staticStatements, boolean fieldInit) {
    MethodNode method = getOrAddStaticConstructorNode();
    BlockStatement block = null;
    Statement statement = method.getCode();
    if (statement == null) {
      block = new BlockStatement();
    } else if (statement instanceof BlockStatement) {
      block = (BlockStatement) statement;
    } else {
      block = new BlockStatement();
      block.addStatement(statement);
    }

    // while anything inside a static initializer block is appended
    // we don't want to append in the case we have a initialization
    // expression of a static field. In that case we want to add
    // before the other statements
    if (!fieldInit) {
      block.addStatements(staticStatements);
    } else {
      List<Statement> blockStatements = block.getStatements();
      staticStatements.addAll(blockStatements);
      blockStatements.clear();
      blockStatements.addAll(staticStatements);
    }
  }