Hello everyone,

I'm working on a Binary Search Tree project, and I'm stuck on how to implement a method.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
 
public class OrderingPrime {
  public static void main(String[] args) {
    orderPrime a = new orderPrime();
    a.order(); 
  }
}
class orderPrime{
  public orderPrime(){}
  private Scanner fileScanner;
  public void order(){
 
    //1. read numbers into an array list
    //2. remove all the non-prime
    //3. construct a BST
    //4. insert the elements
    //5. output.
 
    ArrayList<Integer> allNumbers = new ArrayList<Integer>();
    ArrayList<Integer> allPrimeNumbers = new ArrayList<Integer>(); //created ArrayList to store prime numbers
 
    //1. read numbers into arraylist
    try {
      fileScanner = new Scanner(new File("input.txt"));
      while(fileScanner.hasNextInt()){
        allNumbers.add(fileScanner.nextInt());
      }
 
      for (int a : allNumbers) { 
        if ( (isPrime(a))) {
          allPrimeNumbers.add(a);
 
        }
      }
 
      //To be Completed
      //2. pick out the primes
      //use the isPrime() method
 
 
      //To be Completed
      //3-4. construct a BST using the Node class.
      //then insert prime numbers into the tree
      //Complete the addOntoBST() method
 
 
      //To be completed:
      //5. output result:
      //Complete the recursivePrint()method to do a IN ORDER TRAVERSAL
      //Print the nodes separated by a space
 
 
      fileScanner.close();
    } catch (FileNotFoundException e) {
      System.out.println("File not found!");
    } finally{
      if(fileScanner!= null)fileScanner.close();
    }
  }
  public boolean isPrime(int input) {
    boolean isPrime = true;
    if(input<2)return false;
    for(int i=2;i<=Math.sqrt(input);i++){
      if(input%i == 0){
        //found a factor!
        isPrime = false;
      }
    }
    return isPrime;
  }
 
 
  }
   class BST {
 
    private Node root;
    public BST() {
      root = null;
    }
 
    public Node getRoot() {
      return root;
    }
 
    public void addOntoBST(Node treeHead, Node current){
 
      if ( treeHead == null ) {
        treeHead = current;
        // if (treeHead.getValue() != null) 
        // this.treeHead = treeHead;
      }
      else {
        if ( current.getValue() < treeHead.getValue()) {
          if ( treeHead.getLeft() == null )
            treeHead.setLeft(current);
          else
            addOntoBST( treeHead.getLeft(), current);
        } else {
          if ( treeHead.getRight() == null )
            treeHead.setRight(current);
          else
            addOntoBST( treeHead.getRight(), current);
        }
      }
 
 
 
    }
    public void recursivePrint(Node treeNode){
      if (treeNode.getLeft() != null) 
        recursivePrint (treeNode.getLeft());
      System.out.print(treeNode.getLeft().toString());
      if (treeNode.getLeft() != null)
        recursivePrint(treeNode.getRight());
      System.out.print(treeNode.getRight().toString());
 
//To be compelted for step 5
    }
 
  }
 
  class Node{
    private int value;
    private Node[] children;
    boolean hasLeft = false;
    boolean hasRight = false;
    public Node(int a){
      children = new Node[2];
      value = a;
    }
    public Node(int a, Node left, Node right){
      children = new Node[2];
      value = a;
      children[0] = left;
      children[1] = right;
      hasLeft = true;
      hasRight = true;
    }
    public void setLeft(Node left){
      children[0] = left;
      hasLeft = true;
    }
    public void setRight(Node right){
      children[1] = right;
      hasRight = true;
    }
 
    public Node getLeft(){
      return children[0];
    }
    public Node getRight(){
      return children[1];
    }
    public int getValue(){
      return value;
    }
    public String toString(){
      return ""+value;
    }
  }
}

Now, I want to use the method addOntoBST to fill my BST with nodes, but haven't figured out how. I've tried to use the following code:

for (int a : allPrimeNumbers) {
    Node tempNode = new Node (a, null, null);
    addOntoBST(BST.getRoot(), brandNode);

just before the BST class declaration, but it gives me an "illegal start of type" error.

Any ideas? I'm just confused as to how I can use the method addOntoBST method to fill the tree.

Thanks in advance