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 }