#!/usr/bin/env python
#
# Print all attributes of a specific class.
#
# Usage: browseUML.py <Classname>
# E.g. browseUML.py Class
#
# Arjan Molenaar.

import sys

sys.path.append("..")

from gaphor.UML import *

done = [ object ]
def print_vars(cls):
    global done
    done.append(cls)
    print cls.__name__ + ":"
    dict = cls._attrdef
    for key in dict.keys():
        print "\t" + key + ":",
	if type(dict[key][0]) is type(Sequence):
	    print "Sequence of " + dict[key][1].__name__,
	else:
	    print "Instance of " + dict[key][1].__name__,
	if len(dict[key]) > 2:
	    print "( <-> " + dict[key][2] + ")"
	else:
	    print ""
    for base in cls.__bases__:
	if base not in done:
	    print_vars(base)

args = sys.argv[1:]

if args:
    cls = eval(args[0])
    print_vars(cls)
else:
    print "Usage: " + sys.argv[0] + " <UML class name>"
    sys.exit(1)