I have created a hierarchy of unimplemented functions in a Java class, and I'd like to keep track of the functions that can be implemented, given the ones that have already been implemented.
As an example, here is a long chain of unimplemented function dependencies that I'd like to analyze programmatically, to determine which functions can be implemented (given the ones that have already been implemented).
//requires the functions b and c
public static void a(){
}
//does not require any functions to be implemented before being implemented
public static void b(){
}
//requires the function b
public static void c(){
}
public static void d(){ //requires the function a
}
public static void e(){ //requires the function a and c
}
public static void f(){ //requires the function a and c
}
//requires the functions a and f
public static void g(){
}
Is there any way to determine which of the above functions can be implemented here (given a list of already-implemented functions)? In Javascript, solving this problem is straightforward (because it's possible to set properties of each function in the function's prototype), but in Java, I have not yet found a simple and concise solution.