JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/ast/visitor/ObjectIdentityHashCodeVisitor.java
1/*
2 * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser.
3 * Copyright (C) 2011, 2013-2020 The JavaParser Team.
4 *
5 * This file is part of JavaParser.
6 *
7 * JavaParser can be used either under the terms of
8 * a) the GNU Lesser General Public License as published by
9 *     the Free Software Foundation, either version 3 of the License, or
10 *     (at your option) any later version.
11 * b) the terms of the Apache License
12 *
13 * You should have received a copy of both licenses in LICENCE.LGPL and
14 * LICENCE.APACHE. Please refer to those files for details.
15 *
16 * JavaParser is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU Lesser General Public License for more details.
20 */
21package com.github.javaparser.ast.visitor;
22
23import com.github.javaparser.ast.*;
24import com.github.javaparser.ast.body.*;
25import com.github.javaparser.ast.comments.BlockComment;
26import com.github.javaparser.ast.comments.JavadocComment;
27import com.github.javaparser.ast.comments.LineComment;
28import com.github.javaparser.ast.expr.*;
29import com.github.javaparser.ast.modules.*;
30import com.github.javaparser.ast.stmt.*;
31import com.github.javaparser.ast.type.*;
32
33/**
34 * A visitor that calculates a deep hash code for a node by using the hash codes of all its properties,
35 * and the hash codes of all its child nodes (by visiting those too.)
36 */
37public class ObjectIdentityHashCodeVisitor implements GenericVisitor<IntegerVoid> {
38
39    private static final ObjectIdentityHashCodeVisitor SINGLETON = new ObjectIdentityHashCodeVisitor();
40
41    public static int hashCode(final Node node) {
42        return node.accept(SINGLETONnull);
43    }
44
45    public Integer visit(final AnnotationDeclaration nfinal Void arg) {
46        return n.hashCode();
47    }
48
49    public Integer visit(final AnnotationMemberDeclaration nfinal Void arg) {
50        return n.hashCode();
51    }
52
53    public Integer visit(final ArrayAccessExpr nfinal Void arg) {
54        return n.hashCode();
55    }
56
57    public Integer visit(final ArrayCreationExpr nfinal Void arg) {
58        return n.hashCode();
59    }
60
61    public Integer visit(final ArrayCreationLevel nfinal Void arg) {
62        return n.hashCode();
63    }
64
65    public Integer visit(final ArrayInitializerExpr nfinal Void arg) {
66        return n.hashCode();
67    }
68
69    public Integer visit(final ArrayType nfinal Void arg) {
70        return n.hashCode();
71    }
72
73    public Integer visit(final AssertStmt nfinal Void arg) {
74        return n.hashCode();
75    }
76
77    public Integer visit(final AssignExpr nfinal Void arg) {
78        return n.hashCode();
79    }
80
81    public Integer visit(final BinaryExpr nfinal Void arg) {
82        return n.hashCode();
83    }
84
85    public Integer visit(final BlockComment nfinal Void arg) {
86        return n.hashCode();
87    }
88
89    public Integer visit(final BlockStmt nfinal Void arg) {
90        return n.hashCode();
91    }
92
93    public Integer visit(final BooleanLiteralExpr nfinal Void arg) {
94        return n.hashCode();
95    }
96
97    public Integer visit(final BreakStmt nfinal Void arg) {
98        return n.hashCode();
99    }
100
101    public Integer visit(final CastExpr nfinal Void arg) {
102        return n.hashCode();
103    }
104
105    public Integer visit(final CatchClause nfinal Void arg) {
106        return n.hashCode();
107    }
108
109    public Integer visit(final CharLiteralExpr nfinal Void arg) {
110        return n.hashCode();
111    }
112
113    public Integer visit(final ClassExpr nfinal Void arg) {
114        return n.hashCode();
115    }
116
117    public Integer visit(final ClassOrInterfaceDeclaration nfinal Void arg) {
118        return n.hashCode();
119    }
120
121    public Integer visit(final ClassOrInterfaceType nfinal Void arg) {
122        return n.hashCode();
123    }
124
125    public Integer visit(final CompilationUnit nfinal Void arg) {
126        return n.hashCode();
127    }
128
129    public Integer visit(final ConditionalExpr nfinal Void arg) {
130        return n.hashCode();
131    }
132
133    public Integer visit(final ConstructorDeclaration nfinal Void arg) {
134        return n.hashCode();
135    }
136
137    public Integer visit(final ContinueStmt nfinal Void arg) {
138        return n.hashCode();
139    }
140
141    public Integer visit(final DoStmt nfinal Void arg) {
142        return n.hashCode();
143    }
144
145    public Integer visit(final DoubleLiteralExpr nfinal Void arg) {
146        return n.hashCode();
147    }
148
149    public Integer visit(final EmptyStmt nfinal Void arg) {
150        return n.hashCode();
151    }
152
153    public Integer visit(final EnclosedExpr nfinal Void arg) {
154        return n.hashCode();
155    }
156
157    public Integer visit(final EnumConstantDeclaration nfinal Void arg) {
158        return n.hashCode();
159    }
160
161    public Integer visit(final EnumDeclaration nfinal Void arg) {
162        return n.hashCode();
163    }
164
165    public Integer visit(final ExplicitConstructorInvocationStmt nfinal Void arg) {
166        return n.hashCode();
167    }
168
169    public Integer visit(final ExpressionStmt nfinal Void arg) {
170        return n.hashCode();
171    }
172
173    public Integer visit(final FieldAccessExpr nfinal Void arg) {
174        return n.hashCode();
175    }
176
177    public Integer visit(final FieldDeclaration nfinal Void arg) {
178        return n.hashCode();
179    }
180
181    public Integer visit(final ForStmt nfinal Void arg) {
182        return n.hashCode();
183    }
184
185    public Integer visit(final ForEachStmt nfinal Void arg) {
186        return n.hashCode();
187    }
188
189    public Integer visit(final IfStmt nfinal Void arg) {
190        return n.hashCode();
191    }
192
193    public Integer visit(final ImportDeclaration nfinal Void arg) {
194        return n.hashCode();
195    }
196
197    public Integer visit(final InitializerDeclaration nfinal Void arg) {
198        return n.hashCode();
199    }
200
201    public Integer visit(final InstanceOfExpr nfinal Void arg) {
202        return n.hashCode();
203    }
204
205    public Integer visit(final IntegerLiteralExpr nfinal Void arg) {
206        return n.hashCode();
207    }
208
209    public Integer visit(final IntersectionType nfinal Void arg) {
210        return n.hashCode();
211    }
212
213    public Integer visit(final JavadocComment nfinal Void arg) {
214        return n.hashCode();
215    }
216
217    public Integer visit(final LabeledStmt nfinal Void arg) {
218        return n.hashCode();
219    }
220
221    public Integer visit(final LambdaExpr nfinal Void arg) {
222        return n.hashCode();
223    }
224
225    public Integer visit(final LineComment nfinal Void arg) {
226        return n.hashCode();
227    }
228
229    public Integer visit(final LocalClassDeclarationStmt nfinal Void arg) {
230        return n.hashCode();
231    }
232
233    public Integer visit(final LongLiteralExpr nfinal Void arg) {
234        return n.hashCode();
235    }
236
237    public Integer visit(final MarkerAnnotationExpr nfinal Void arg) {
238        return n.hashCode();
239    }
240
241    public Integer visit(final MemberValuePair nfinal Void arg) {
242        return n.hashCode();
243    }
244
245    public Integer visit(final MethodCallExpr nfinal Void arg) {
246        return n.hashCode();
247    }
248
249    public Integer visit(final MethodDeclaration nfinal Void arg) {
250        return n.hashCode();
251    }
252
253    public Integer visit(final MethodReferenceExpr nfinal Void arg) {
254        return n.hashCode();
255    }
256
257    public Integer visit(final NameExpr nfinal Void arg) {
258        return n.hashCode();
259    }
260
261    public Integer visit(final Name nfinal Void arg) {
262        return n.hashCode();
263    }
264
265    public Integer visit(NodeList nVoid arg) {
266        return n.hashCode();
267    }
268
269    public Integer visit(final NormalAnnotationExpr nfinal Void arg) {
270        return n.hashCode();
271    }
272
273    public Integer visit(final NullLiteralExpr nfinal Void arg) {
274        return n.hashCode();
275    }
276
277    public Integer visit(final ObjectCreationExpr nfinal Void arg) {
278        return n.hashCode();
279    }
280
281    public Integer visit(final PackageDeclaration nfinal Void arg) {
282        return n.hashCode();
283    }
284
285    public Integer visit(final Parameter nfinal Void arg) {
286        return n.hashCode();
287    }
288
289    public Integer visit(final PrimitiveType nfinal Void arg) {
290        return n.hashCode();
291    }
292
293    public Integer visit(final ReturnStmt nfinal Void arg) {
294        return n.hashCode();
295    }
296
297    public Integer visit(final SimpleName nfinal Void arg) {
298        return n.hashCode();
299    }
300
301    public Integer visit(final SingleMemberAnnotationExpr nfinal Void arg) {
302        return n.hashCode();
303    }
304
305    public Integer visit(final StringLiteralExpr nfinal Void arg) {
306        return n.hashCode();
307    }
308
309    public Integer visit(final SuperExpr nfinal Void arg) {
310        return n.hashCode();
311    }
312
313    public Integer visit(final SwitchEntry nfinal Void arg) {
314        return n.hashCode();
315    }
316
317    public Integer visit(final SwitchStmt nfinal Void arg) {
318        return n.hashCode();
319    }
320
321    public Integer visit(final SynchronizedStmt nfinal Void arg) {
322        return n.hashCode();
323    }
324
325    public Integer visit(final ThisExpr nfinal Void arg) {
326        return n.hashCode();
327    }
328
329    public Integer visit(final ThrowStmt nfinal Void arg) {
330        return n.hashCode();
331    }
332
333    public Integer visit(final TryStmt nfinal Void arg) {
334        return n.hashCode();
335    }
336
337    public Integer visit(final TypeExpr nfinal Void arg) {
338        return n.hashCode();
339    }
340
341    public Integer visit(final TypeParameter nfinal Void arg) {
342        return n.hashCode();
343    }
344
345    public Integer visit(final UnaryExpr nfinal Void arg) {
346        return n.hashCode();
347    }
348
349    public Integer visit(final UnionType nfinal Void arg) {
350        return n.hashCode();
351    }
352
353    public Integer visit(final UnknownType nfinal Void arg) {
354        return n.hashCode();
355    }
356
357    public Integer visit(final VariableDeclarationExpr nfinal Void arg) {
358        return n.hashCode();
359    }
360
361    public Integer visit(final VariableDeclarator nfinal Void arg) {
362        return n.hashCode();
363    }
364
365    public Integer visit(final VoidType nfinal Void arg) {
366        return n.hashCode();
367    }
368
369    public Integer visit(final WhileStmt nfinal Void arg) {
370        return n.hashCode();
371    }
372
373    public Integer visit(final WildcardType nfinal Void arg) {
374        return n.hashCode();
375    }
376
377    public Integer visit(final ModuleDeclaration nfinal Void arg) {
378        return n.hashCode();
379    }
380
381    public Integer visit(final ModuleRequiresDirective nfinal Void arg) {
382        return n.hashCode();
383    }
384
385    @Override()
386    public Integer visit(final ModuleExportsDirective nfinal Void arg) {
387        return n.hashCode();
388    }
389
390    @Override()
391    public Integer visit(final ModuleProvidesDirective nfinal Void arg) {
392        return n.hashCode();
393    }
394
395    @Override()
396    public Integer visit(final ModuleUsesDirective nfinal Void arg) {
397        return n.hashCode();
398    }
399
400    @Override
401    public Integer visit(final ModuleOpensDirective nfinal Void arg) {
402        return n.hashCode();
403    }
404
405    @Override
406    public Integer visit(final UnparsableStmt nfinal Void arg) {
407        return n.hashCode();
408    }
409
410    @Override
411    public Integer visit(final ReceiverParameter nfinal Void arg) {
412        return n.hashCode();
413    }
414
415    @Override
416    public Integer visit(final VarType nfinal Void arg) {
417        return n.hashCode();
418    }
419
420    @Override
421    public Integer visit(final Modifier nfinal Void arg) {
422        return n.hashCode();
423    }
424
425    @Override
426    public Integer visit(final SwitchExpr nfinal Void arg) {
427        return n.hashCode();
428    }
429
430    @Override
431    public Integer visit(final YieldStmt nfinal Void arg) {
432        return n.hashCode();
433    }
434
435    @Override
436    public Integer visit(final TextBlockLiteralExpr nfinal Void arg) {
437        return n.hashCode();
438    }
439}
440
MembersX
ObjectIdentityHashCodeVisitor:hashCode
ObjectIdentityHashCodeVisitor:visit
ObjectIdentityHashCodeVisitor:SINGLETON
Members
X