1 11 package org.eclipse.jdt.internal.corext.refactoring.reorg; 12 13 import org.eclipse.core.resources.IResource; 14 15 import org.eclipse.ltk.core.refactoring.participants.ReorgExecutionLog; 16 17 import org.eclipse.jdt.core.ICompilationUnit; 18 import org.eclipse.jdt.core.IPackageFragment; 19 import org.eclipse.jdt.core.IPackageFragmentRoot; 20 21 26 public final class LoggedNewNameQueries implements INewNameQueries { 27 28 29 private final class NewNameQuery implements INewNameQuery { 30 31 32 private final String fName; 33 34 35 private final Object fObject; 36 37 45 public NewNameQuery(final Object object, String name) { 46 fObject= object; 47 fName= name; 48 } 49 50 55 private String getCompilationUnitName() { 56 String name= fLog.getNewName(fObject); 57 if (name != null) { 58 int index= name.lastIndexOf('.'); 59 if (index > 0) 60 name= name.substring(0, index); 61 } 62 return name; 63 } 64 65 68 public String getNewName() { 69 String name= null; 70 if (fObject instanceof ICompilationUnit) 71 name= getCompilationUnitName(); 72 else 73 name= fLog.getNewName(fObject); 74 if (name == null) 75 name= fName; 76 return fName; 77 } 78 } 79 80 81 private static final class NullNewNameQuery implements INewNameQuery { 82 83 86 public String getNewName() { 87 return "null"; } 89 } 90 91 92 private final ReorgExecutionLog fLog; 93 94 100 public LoggedNewNameQueries(final ReorgExecutionLog log) { 101 fLog= log; 102 } 103 104 107 public INewNameQuery createNewCompilationUnitNameQuery(final ICompilationUnit unit, final String initialSuggestedName) { 108 return new NewNameQuery(unit, initialSuggestedName); 109 } 110 111 114 public INewNameQuery createNewPackageFragmentRootNameQuery(final IPackageFragmentRoot root, final String initialSuggestedName) { 115 return new NewNameQuery(root, initialSuggestedName); 116 } 117 118 121 public INewNameQuery createNewPackageNameQuery(final IPackageFragment fragment, final String initialSuggestedName) { 122 return new NewNameQuery(fragment, initialSuggestedName); 123 } 124 125 128 public INewNameQuery createNewResourceNameQuery(final IResource resource, final String initialSuggestedName) { 129 return new NewNameQuery(resource, initialSuggestedName); 130 } 131 132 135 public INewNameQuery createNullQuery() { 136 return new NullNewNameQuery(); 137 } 138 139 142 public INewNameQuery createStaticQuery(final String name) { 143 return new INewNameQuery() { 144 145 public String getNewName() { 146 return name; 147 } 148 }; 149 } 150 } | Popular Tags |