You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

StructureViewProperties.java 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. /* *******************************************************************
  2. * Copyright (c) 1999-2001 Xerox Corporation,
  3. * 2002 Palo Alto Research Center, Incorporated (PARC).
  4. * All rights reserved.
  5. * This program and the accompanying materials are made available
  6. * under the terms of the Eclipse Public License v1.0
  7. * which accompanies this distribution and is available at
  8. * http://www.eclipse.org/legal/epl-v10.html
  9. *
  10. * Contributors:
  11. * Xerox/PARC initial implementation
  12. * ******************************************************************/
  13. package org.aspectj.ajde.ui;
  14. import java.io.ObjectStreamException;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. import org.aspectj.asm.IProgramElement;
  18. import org.aspectj.asm.IRelationship;
  19. /**
  20. * Nested properties use the typesafe enum pattern.
  21. *
  22. * @author Mik Kersten
  23. */
  24. public class StructureViewProperties {
  25. /**
  26. * @deprecated
  27. */
  28. public static final String SORT_DECLARATIONAL = StructureViewProperties.Sorting.DECLARATIONAL.toString();
  29. /**
  30. * @deprecated
  31. */
  32. public void setSorting(String sorting) { }
  33. private List<IRelationship.Kind> relations = new ArrayList<>();
  34. private List<IProgramElement.Accessibility> filteredMemberAccessibility = new ArrayList<>();
  35. private List<IProgramElement.Modifiers> filteredMemberModifiers = new ArrayList<>();
  36. private List<IProgramElement.Kind> filteredMemberKinds = new ArrayList<>();
  37. private List<Grouping> grouping = new ArrayList<>();
  38. private Sorting sorting = Sorting.DECLARATIONAL;
  39. private Granularity granularity = StructureViewProperties.Granularity.DECLARED_ELEMENTS;
  40. public List getRelations() {
  41. return relations;
  42. }
  43. public void setRelations(List relations) {
  44. this.relations = relations;
  45. }
  46. public void addRelation(IRelationship.Kind kind) {
  47. relations.add(kind);
  48. }
  49. public void removeRelation(IRelationship.Kind kind) {
  50. relations.remove(kind);
  51. }
  52. public void setFilteredMemberAccessibility(List memberVisibility) {
  53. this.filteredMemberAccessibility = memberVisibility;
  54. }
  55. public List getFilteredMemberAccessibility() {
  56. return filteredMemberAccessibility;
  57. }
  58. public void addFilteredMemberAccessibility(IProgramElement.Accessibility accessibility) {
  59. this.filteredMemberAccessibility.add(accessibility);
  60. }
  61. public void removeFilteredMemberAccessibility(IProgramElement.Accessibility accessibility) {
  62. this.filteredMemberAccessibility.remove(accessibility);
  63. }
  64. public List getFilteredMemberModifiers() {
  65. return filteredMemberModifiers;
  66. }
  67. public void setFilteredMemberModifiers(List memberModifiers) {
  68. this.filteredMemberModifiers = memberModifiers;
  69. }
  70. public void addFilteredMemberModifiers(IProgramElement.Modifiers modifiers) {
  71. this.filteredMemberModifiers.add(modifiers);
  72. }
  73. public void removeFilteredMemberModifiers(IProgramElement.Modifiers modifiers) {
  74. this.filteredMemberModifiers.remove(modifiers);
  75. }
  76. public StructureViewProperties.Sorting getSorting() {
  77. return sorting;
  78. }
  79. public void setSorting(StructureViewProperties.Sorting sorting) {
  80. this.sorting = sorting;
  81. }
  82. public List getFilteredMemberKinds() {
  83. return filteredMemberKinds;
  84. }
  85. public void setFilteredMemberKinds(List memberKinds) {
  86. this.filteredMemberKinds = memberKinds;
  87. }
  88. public void addFilteredMemberKind(IProgramElement.Kind kind) {
  89. this.filteredMemberKinds.add(kind);
  90. }
  91. public void removeFilteredMemberKind(IProgramElement.Kind kind) {
  92. this.filteredMemberKinds.remove(kind);
  93. }
  94. public List getGrouping() {
  95. return grouping;
  96. }
  97. public void setGrouping(List grouping) {
  98. this.grouping = grouping;
  99. }
  100. public void addGrouping(Grouping grouping) {
  101. this.grouping.add(grouping);
  102. }
  103. public void removeGrouping(Grouping grouping) {
  104. this.grouping.remove(grouping);
  105. }
  106. public Granularity getGranularity() {
  107. return granularity;
  108. }
  109. public void setGranularity(Granularity granularity) {
  110. this.granularity = granularity;
  111. }
  112. public String getName() {
  113. return "<unnamed view>";
  114. }
  115. public String toString() {
  116. return "\nView Properties:"
  117. + "\n-> sorting: " + sorting
  118. + "\n-> grouping: " + grouping
  119. + "\n-> filtered member kinds: " + filteredMemberKinds
  120. + "\n-> filtered member accessibility: " + filteredMemberAccessibility
  121. + "\n-> filtered member modifiers: " + filteredMemberModifiers
  122. + "\n-> relations: " + relations;
  123. }
  124. public static class Hierarchy {
  125. public static final Hierarchy DECLARATION = new Hierarchy("package hierarchy");
  126. public static final Hierarchy CROSSCUTTING = new Hierarchy("crosscutting structure");
  127. public static final Hierarchy INHERITANCE = new Hierarchy("type hierarchy");
  128. public static final Hierarchy[] ALL = { DECLARATION, CROSSCUTTING, INHERITANCE };
  129. private final String name;
  130. private Hierarchy(String name) {
  131. this.name = name;
  132. }
  133. public String toString() {
  134. return name;
  135. }
  136. // The 4 declarations below are necessary for serialization
  137. private static int nextOrdinal = 0;
  138. private final int ordinal = nextOrdinal++;
  139. private Object readResolve() throws ObjectStreamException {
  140. return ALL[ordinal];
  141. }
  142. }
  143. public static class Grouping {
  144. public static final Grouping KIND = new Grouping("group by kind");
  145. public static final Grouping VISIBILITY = new Grouping("group by visibility");
  146. public static final Grouping[] ALL = { KIND, VISIBILITY };
  147. private final String name;
  148. private Grouping(String name) {
  149. this.name = name;
  150. }
  151. public String toString() {
  152. return name;
  153. }
  154. // The 4 declarations below are necessary for serialization
  155. private static int nextOrdinal = 0;
  156. private final int ordinal = nextOrdinal++;
  157. private Object readResolve() throws ObjectStreamException {
  158. return ALL[ordinal];
  159. }
  160. }
  161. public static class Sorting {
  162. public static final Sorting ALPHABETICAL = new Sorting("sort alphabetically");
  163. public static final Sorting DECLARATIONAL = new Sorting("sort declarationally");
  164. public static final Sorting[] ALL = { ALPHABETICAL, DECLARATIONAL };
  165. private final String name;
  166. private Sorting(String name) {
  167. this.name = name;
  168. }
  169. public String toString() {
  170. return name;
  171. }
  172. // The 4 declarations below are necessary for serialization
  173. private static int nextOrdinal = 0;
  174. private final int ordinal = nextOrdinal++;
  175. private Object readResolve() throws ObjectStreamException {
  176. return ALL[ordinal];
  177. }
  178. }
  179. public static class Granularity {
  180. public static final Granularity PACKAGE = new Granularity("package");
  181. public static final Granularity FILE = new Granularity("file");
  182. public static final Granularity TYPE = new Granularity("type");
  183. public static final Granularity MEMBER = new Granularity("member");
  184. public static final Granularity DECLARED_ELEMENTS = new Granularity("declared body elements");
  185. public static final Granularity[] ALL = { PACKAGE, FILE, TYPE, MEMBER, DECLARED_ELEMENTS };
  186. private final String name;
  187. private Granularity(String name) {
  188. this.name = name;
  189. }
  190. public String toString() {
  191. return name;
  192. }
  193. // The 4 declarations below are necessary for serialization
  194. private static int nextOrdinal = 0;
  195. private final int ordinal = nextOrdinal++;
  196. private Object readResolve() throws ObjectStreamException {
  197. return ALL[ordinal];
  198. }
  199. }
  200. }