{"id":15663338,"url":"https://github.com/jexp/class-graph","last_synced_at":"2025-07-13T06:33:13.820Z","repository":{"id":3557186,"uuid":"4618412","full_name":"jexp/class-graph","owner":"jexp","description":null,"archived":false,"fork":false,"pushed_at":"2012-06-30T05:18:31.000Z","size":216,"stargazers_count":19,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-25T16:44:16.890Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jexp.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-06-10T21:12:50.000Z","updated_at":"2025-01-19T19:34:27.000Z","dependencies_parsed_at":"2022-07-28T21:19:09.129Z","dependency_job_id":null,"html_url":"https://github.com/jexp/class-graph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fclass-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fclass-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fclass-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fclass-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jexp","download_url":"https://codeload.github.com/jexp/class-graph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242789167,"owners_count":20185398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T13:36:45.223Z","updated_at":"2025-03-10T04:30:49.634Z","avatar_url":"https://github.com/jexp.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## import class structures from jar-files into Neo4j\n\nusage:\n\n    java -cp $CLASSPATH org.neo4j.datasource.java.JarFileImporter db-dir package.and.Class\n\n`package.and.Class` is a class of the jar file which should be imported, must be in the classpath\n\ne.g.\n\n    java -cp $CLASSPATH org.neo4j.datasource.java.JarFileImporter test-db java.lang.Object\n\n## Graph structure\n\n    ROOT-[:ALL_TYPES]-\u003eall_types { type: \"TYPE\" }\n        -[:TYPE]-\u003eclass ({name : {slash-name}, access : {access} })\n\n    ROOT-[:ALL_PACKAGES]-\u003e(all_packages { type : \"ALL_PACKAGES\" })\n        -[:{package-name}]-\u003e(package { name : {package-name} })\n        -[:IN_PACKAGE]-\u003eclass\n\n    ROOT-[:PACKAGE_TREE]-\u003e(p1 {name: {package-name}, part: {part}})\n        -[:{part} *]-\u003e(p* ...)\n        -[:{package-name}]-\u003e(package {...})\n        -[:IN_PACKAGE]-\u003eclass\n\n    class-[:INTERFACE_TYPE]-\u003einterface\n    class-[:SUPER_TYPE]-\u003esuperclass\n\n    class-[:FIELD]-\u003efield-[:FIELD_TYPE]-\u003efield_type\n\n    class-[:METHOD_OF]-\u003emethod-[:PARAM_TYPE]-\u003eparam_type\n                        method-[:RETURN_TYPE]-\u003ereturn_type\n                        method-[:THROWS]-\u003eexception\n\n![graph model](https://raw.github.com/jexp/class-graph/master/model.png)\n\n## sample cypher queries\n\n    (might need to increase memory in `neo4j-shell` e.g. `EXTRA_JVM_ARGUMENTS=\"-Xmx2G -server -d64\"`)\n\n    neo4j-community-1.7/bin/neo4j-shell -path test-db/\n\n### Class Count\n\n    start n=node(0) match n-[:ALL_TYPES]-\u003et-[:TYPE]-\u003e() return count(*)\n    +----------+\n    | count(*) |\n    +----------+\n    | 19258    |\n    +----------+\n\n\n### Biggest Packages\n\n    start n=node(0) match n-[:ALL_PACKAGES]-\u003e()-[]-\u003ep-[:IN_PACKAGE]-() return p,count(*) order by count(*) desc limit 10\n    +--------------------------------------------------------------------------+\n    | p                                                             | count(*) |\n    +--------------------------------------------------------------------------+\n    | Node[313]{name-\u003e\"javax.swing\"}                                | 494      |\n    | Node[303]{name-\u003e\"com.apple.laf\"}                              | 411      |\n    | Node[194570]{name-\u003e\"sun.awt.X11\"}                             | 403      |\n    | Node[308]{name-\u003e\"javax.swing.plaf.basic\"}                     | 343      |\n    +--------------------------------------------------------------------------+\n\n### Biggest Top-Level-Packages\n\n    start n=node(0) match n-[:PACKAGE_TREE]-\u003em--\u003ep-[*0..5]-\u003e()-[:IN_PACKAGE]-\u003ec return p.name,count(c) order by count(c) desc limit 10\n    +----------------------+\n    | p.name    | count(c) |\n    +----------------------+\n    | \"sun\"     | 4292     |\n    | \"javax\"   | 3455     |\n    | \"java\"    | 2854     |\n    | \"com\"     | 1696     |\n    | \"org\"     | 736      |\n    | \"apple\"   | 60       |\n    | \"default\" | 29       |\n    | \"sunw\"    | 3        |\n    +----------------------+\n\n\n### Top Used\n\n    start n=node(0) match n-[:ALL_TYPES]-\u003et-[:TYPE]-\u003ec\u003c-[:FIELD_TYPE|PARAM_TYPE]-() return c,count(*) order by count(*) desc limit 10\n    +----------------------------------------------------------+\n    | c                                             | count(*) |\n    +----------------------------------------------------------+\n    | Node[17]{name-\u003e\"int\"}                         | 59920    |\n    | Node[23]{name-\u003e\"java/lang/String\"}            | 41002    |\n    | Node[10]{name-\u003e\"java/lang/Object\",access-\u003e33} | 23268    |\n    ....\n    | Node[15]{name-\u003e\"java/lang/Class\"}             | 2833     |\n    ....\n    +----------------------------------------------------------+\n\n### Top inherited\n\n    start n=node(0) match n-[:ALL_TYPES]-\u003et-[:TYPE]-\u003ec\u003c-[:SUPER_TYPE]-() return c,count(*) order by count(*) desc limit 10\n    +--------------------------------------------------------------------------------------------+\n    | c                                                                               | count(*) |\n    +--------------------------------------------------------------------------------------------+\n    | Node[10]{name-\u003e\"java/lang/Object\",access-\u003e33}                                   | 10007    |\n    | Node[12551]{access-\u003e1057,name-\u003e\"java/util/ListResourceBundle\"}                  | 443      |\n    | Node[1004]{name-\u003e\"java/lang/Enum\",access-\u003e1057}                                 | 208      |\n    | Node[240976]{access-\u003e1057,name-\u003e\"sun/util/resources/LocaleNamesBundle\"}         | 184      |\n    | Node[12367]{name-\u003e\"java/lang/Exception\"}                                        | 124      |\n    | Node[194573]{access-\u003e1056,name-\u003e\"sun/awt/X11/XWrapperBase\"}                     | 108      |\n    | Node[3137]{name-\u003e\"java/lang/RuntimeException\"}                                  | 89       |\n    | Node[4656]{access-\u003e1057,name-\u003e\"javax/swing/AbstractAction\"}                     | 70       |\n    | Node[36898]{name-\u003e\"javax/swing/plaf/nimbus/AbstractRegionPainter\",access-\u003e1057} | 59       |\n    | Node[1022]{name-\u003e\"java/io/IOException\"}                                         | 56       |\n    +--------------------------------------------------------------------------------------------+\n\n\n\n### Collaborative filtering\n\nWhich other classes were used by users of this class (1022 = IOException)\n\n    start c=node(1022) match c\u003c--()--\u003eother return other,count(*) order by count(*) desc limit 20\n    +--------------------------------------------------------------------------------+\n    | other                                                               | count(*) |\n    +--------------------------------------------------------------------------------+\n    | Node[12]{name-\u003e\"void\"}                                              | 5010     |\n    | Node[17]{name-\u003e\"int\"}                                               | 2791     |\n    | Node[23]{name-\u003e\"java/lang/String\"}                                  | 1687     |\n    | Node[385]{name-\u003e\"byte\"}                                             | 958      |\n    | Node[19]{name-\u003e\"boolean\"}                                           | 828      |\n    | Node[10]{name-\u003e\"java/lang/Object\",access-\u003e33}                       | 619      |\n    | Node[27]{name-\u003e\"long\"}                                              | 505      |\n    | Node[176]{name-\u003e\"java/io/InputStream\"}                              | 457      |\n    | Node[1344]{name-\u003e\"java/io/OutputStream\"}                            | 369      |\n    | Node[1023]{name-\u003e\"java/lang/ClassNotFoundException\"}                | 352      |\n    | Node[1021]{name-\u003e\"java/io/ObjectInputStream\"}                       | 298      |\n    | Node[12874]{name-\u003e\"org/xml/sax/SAXException\"}                       | 280      |\n    | Node[1318]{name-\u003e\"java/io/ObjectOutputStream\"}                      | 260      |\n    | Node[1331]{name-\u003e\"char\"}                                            | 197      |\n    | Node[41890]{name-\u003e\"javax/management/ObjectName\"}                    | 196      |\n    | Node[33623]{access-\u003e33,name-\u003e\"javax/xml/stream/XMLStreamException\"} | 194      |\n    | Node[7283]{name-\u003e\"java/net/URL\"}                                    | 178      |\n    | Node[230034]{name-\u003e\"sun/security/krb5/Asn1Exception\",access-\u003e33}    | 167      |\n    | Node[142477]{name-\u003e\"java/nio/file/Path\"}                            | 165      |\n    | Node[2274]{name-\u003e\"java/io/File\"}                                    | 154      |\n    +--------------------------------------------------------------------------------+\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Fclass-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjexp%2Fclass-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Fclass-graph/lists"}