The moose likes Java in General and the fly likes Suitable datastructure for classes...? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Suitable datastructure for classes...?" Watch "Suitable datastructure for classes...?" New topic

Suitable datastructure for classes...?

Fahd Shariff
Ranch Hand

Joined: Nov 22, 2002
Posts: 38
Can anyone suggest a suitable datastructure to represent java classes?
I have information of a given class e.g what its name is, what methods it has, what fields etc. I need to store this information in some way.
Should i just have something like this:
//a classstructure object which has a list of methods and fields and
whatever else there is...
class ClassStructure
String name ;
List methods ;
List fields ;
//the usual getter/setter methods
addMethod(MethodStructure m) ;
addField(FieldStructure f) ;
class MethodStructure
String name ;
List parameters ;
String body ;
I hope you understand what i am doing.
Is this the best way to represent a java class???
I need to do this so that i can carry out quick searches on source code. For example, I want to be able to say something like: "Get me all the
methods whose names begin with "get*" and return a String". So the program would return
getName(), getAddress() etc. I do not want to carry out a full text search.
Any comments would be appreciated

Fahd Shariff<br />"Let the code do the talking"
Cindy Glass
"The Hood"

Joined: Sep 29, 2000
Posts: 8521
Why don't you just use reflection to do this?

"JavaRanch, where the deer and the Certified play" - David O'Meara
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
To clarify what Cindy just said, the java.lang.Class is the "structure" you're looking for.
Fahd Shariff
Ranch Hand

Joined: Nov 22, 2002
Posts: 38
I know about the reflection api. But my ultimate goal is to create a database that contains lots of classes.
I have already created a parser that can parse java source and return all the information from a particular class(similar to the reflection api plus more info). But I would like to store this somewhere. Once stored i should be able to display the code in a number of ways.
Now the question is: what should the database "look like"? Should it be object oriented like i described previously, in the form of a tree, table? Which one would be the best?
I agree. Here's the link:
subject: Suitable datastructure for classes...?
It's not a secret anymore!