1 /*******************************************************************************
2  * Copyright (c) 2008, 2019 Mateusz Matela and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     Mateusz Matela <mateusz.matela@gmail.com> - [code manipulation] [dcr] toString() builder wizard - https://bugs.eclipse.org/bugs/show_bug.cgi?id=26070
13  *     Mateusz Matela <mateusz.matela@gmail.com> - [toString] finish toString() builder wizard - https://bugs.eclipse.org/bugs/show_bug.cgi?id=267710
14  *     Red Hat Inc. - moved to jdt.core.manipulation
15  *******************************************************************************/
16 package org.eclipse.jdt.internal.corext.codemanipulation.tostringgeneration;
17 
18 import org.eclipse.jdt.core.ICompilationUnit;
19 import org.eclipse.jdt.core.dom.AST;
20 import org.eclipse.jdt.core.dom.ITypeBinding;
21 import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
22 import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
23 
24 import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
25 import org.eclipse.jdt.internal.corext.refactoring.structure.CompilationUnitRewrite;
26 
27 
28 class ToStringGenerationContext {
29 
30 	private Object[] fSelectedMembers;
31 
32 	private ToStringTemplateParser fParser;
33 
34 	private ITypeBinding fType;
35 
36 	private ToStringGenerationSettingsCore fSettings;
37 
38 	private ToStringGenerationSettingsCore.CustomBuilderSettings fCustomBuilderSettings;
39 
40 	private CompilationUnitRewrite fRewrite;
41 
ToStringGenerationContext(ToStringTemplateParser parser, Object[] selectedMembers, ToStringGenerationSettingsCore settings, ITypeBinding type, CompilationUnitRewrite rewrite)42 	ToStringGenerationContext(ToStringTemplateParser parser, Object[] selectedMembers, ToStringGenerationSettingsCore settings, ITypeBinding type,
43 			CompilationUnitRewrite rewrite) {
44 		fParser= parser;
45 		fSelectedMembers= selectedMembers;
46 		fSettings= settings;
47 		fCustomBuilderSettings= settings.getCustomBuilderSettings();
48 		fType= type;
49 		fRewrite= rewrite;
50 	}
51 
getASTRewrite()52 	public ASTRewrite getASTRewrite() {
53 		return fRewrite.getASTRewrite();
54 	}
55 
getAST()56 	public AST getAST() {
57 		return fRewrite.getAST();
58 	}
59 
getCompilationUnit()60 	public ICompilationUnit getCompilationUnit() {
61 		return fRewrite.getCu();
62 	}
63 
getImportRewrite()64 	public ImportRewrite getImportRewrite() {
65 		return fRewrite.getImportRewrite();
66 	}
67 
getLimitItemsValue()68 	public int getLimitItemsValue() {
69 		return fSettings.limitValue;
70 	}
71 
getSelectedMembers()72 	public Object[] getSelectedMembers() {
73 		return fSelectedMembers;
74 	}
75 
getTemplateParser()76 	public ToStringTemplateParser getTemplateParser() {
77 		return fParser;
78 	}
79 
getTypeBinding()80 	public ITypeBinding getTypeBinding() {
81 		return fType;
82 	}
83 
is50orHigher()84 	public boolean is50orHigher() {
85 		return fSettings.is50orHigher;
86 	}
87 
is60orHigher()88 	public boolean is60orHigher() {
89 		return fSettings.is60orHigher;
90 	}
91 
isCreateComments()92 	public boolean isCreateComments() {
93 		return fSettings.createComments;
94 	}
95 
isCustomArray()96 	public boolean isCustomArray() {
97 		return fSettings.customArrayToString;
98 	}
99 
isForceBlocks()100 	public boolean isForceBlocks() {
101 		return fSettings.useBlocks;
102 	}
103 
isKeywordThis()104 	public boolean isKeywordThis() {
105 		return fSettings.useKeywordThis;
106 	}
107 
isLimitItems()108 	public boolean isLimitItems() {
109 		return fSettings.limitElements;
110 	}
111 
isOverrideAnnotation()112 	public boolean isOverrideAnnotation() {
113 		return fSettings.overrideAnnotation;
114 	}
115 
isSkipNulls()116 	public boolean isSkipNulls() {
117 		return fSettings.skipNulls;
118 	}
119 
getCustomBuilderClass()120 	public String getCustomBuilderClass() {
121 		return fCustomBuilderSettings.className;
122 	}
123 
getCustomBuilderVariableName()124 	public String getCustomBuilderVariableName() {
125 		return fCustomBuilderSettings.variableName;
126 	}
127 
getCustomBuilderAppendMethod()128 	public String getCustomBuilderAppendMethod() {
129 		return fCustomBuilderSettings.appendMethod;
130 	}
131 
getCustomBuilderResultMethod()132 	public String getCustomBuilderResultMethod() {
133 		return fCustomBuilderSettings.resultMethod;
134 	}
135 
isCustomBuilderChainedCalls()136 	public boolean isCustomBuilderChainedCalls() {
137 		return fCustomBuilderSettings.chainCalls;
138 	}
139 
getCodeGenerationSettings()140 	public CodeGenerationSettings getCodeGenerationSettings() {
141 		return fSettings;
142 	}
143 
144 }