A semantic search engine for source code https://bitshift.benkurtovic.com/
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

122 righe
5.2 KiB

  1. package org.bitshift.parsing.symbols;
  2. import java.util.List;
  3. import java.util.Map;
  4. import java.util.HashMap;
  5. import java.util.ArrayList;
  6. import org.bitshift.parsing.symbols.Symbols;
  7. /*TODO: Overwrite toString*/
  8. public class JavaSymbols extends Symbols {
  9. private String _packageName;
  10. private Map<String, List<List<Integer>>> _classes;
  11. private Map<String, List<List<Integer>>> _interfaces;
  12. private Map<String, List<List<Integer>>> _methods;
  13. private Map<String, List<List<Integer>>> _fields;
  14. private Map<String, List<List<Integer>>> _vars;
  15. public JavaSymbols() {
  16. _packageName = null;
  17. _classes = new HashMap<String, ArrayList<ArrayList<Integer>>>();
  18. _interfaces = new HashMap<String, ArrayList<ArrayList<Integer>>>();
  19. _methods = new HashMap<String, ArrayList<ArrayList<Integer>>>();
  20. _fields = new HashMap<String, ArrayList<ArrayList<Integer>>>();
  21. _vars = new HashMap<String, ArrayList<ArrayList<Integer>>>();
  22. }
  23. public boolean setPackage(String name) {
  24. _packageName = name;
  25. }
  26. public boolean insertClassDeclaration(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  27. List<Integer> pos = new ArrayList<Integer>(4);
  28. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  29. List<List<Integer>> copy = _classes.get(name);
  30. copy.add(0, pos);
  31. _classes.put(name, copy);
  32. return true;
  33. }
  34. public boolean insertClassInstance(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  35. List<Integer> pos = new ArrayList<Integer>(4);
  36. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  37. List<List<Integer>> copy = _classes.get(name);
  38. copy.add(pos);
  39. _classes.put(name, copy);
  40. return true;
  41. }
  42. public boolean insertInterfaceDeclaration(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  43. List<Integer> pos = new ArrayList<Integer>(4);
  44. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  45. List<List<Integer>> copy = _classes.get(name);
  46. copy.add(0, pos);
  47. _classes.put(name, copy);
  48. return true;
  49. }
  50. public boolean insertInterfaceInstance(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  51. List<Integer> pos = new ArrayList<Integer>(4);
  52. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  53. List<List<Integer>> copy = _classes.get(name);
  54. copy.add(pos);
  55. _classes.put(name, copy);
  56. return true;
  57. }
  58. public boolean insertMethodDeclaration(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  59. List<Integer> pos = new ArrayList<Integer>(4);
  60. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  61. List<List<Integer>> copy = _classes.get(name);
  62. copy.add(0, pos);
  63. _classes.put(name, copy);
  64. return true;
  65. }
  66. public boolean insertMethodInvocation(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  67. List<Integer> pos = new ArrayList<Integer>(4);
  68. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  69. List<List<Integer>> copy = _classes.get(name);
  70. copy.add(pos);
  71. _classes.put(name, copy);
  72. return true;
  73. }
  74. public boolean insertFieldDeclaration(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  75. List<Integer> pos = new ArrayList<Integer>(4);
  76. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  77. List<List<Integer>> copy = _classes.get(name);
  78. copy.add(0, pos);
  79. _classes.put(name, copy);
  80. return true;
  81. }
  82. public boolean insertFieldAccess(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  83. List<Integer> pos = new ArrayList<Integer>(4);
  84. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  85. List<List<Integer>> copy = _classes.get(name);
  86. copy.add(pos);
  87. _classes.put(name, copy);
  88. return true;
  89. }
  90. public boolean insertVariableDeclaration(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  91. List<Integer> pos = new ArrayList<Integer>(4);
  92. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  93. List<List<Integer>> copy = _classes.get(name);
  94. copy.add(0, pos);
  95. _classes.put(name, copy);
  96. return true;
  97. }
  98. public boolean insertVariableAccess(String name, Integer startLine, Integer startCol, Integer endLine, Integer endCol) {
  99. List<Integer> pos = new ArrayList<Integer>(4);
  100. pos.set(0, startLine); pos.set(1, startCol); pos.set(2, endLine); pos.set(3, endCol);
  101. List<List<Integer>> copy = _classes.get(name);
  102. copy.add(pos);
  103. _classes.put(name, copy);
  104. return true;
  105. }
  106. public String toString() {
  107. }
  108. }