List of usage examples for org.eclipse.jdt.core.compiler CharOperation lastSegment
final static public char[] lastSegment(char[] array, char separator)
From source file:com.codenvy.ide.ext.java.server.internal.core.search.indexing.AbstractIndexer.java
License:Open Source License
public void addAnnotationTypeReference(char[] typeName) { addIndexEntry(ANNOTATION_REF, CharOperation.lastSegment(typeName, '.')); }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.indexing.AbstractIndexer.java
License:Open Source License
public void addConstructorReference(char[] typeName, int argCount) { char[] simpleTypeName = CharOperation.lastSegment(typeName, '.'); addTypeReference(simpleTypeName);//w w w . j a v a 2 s . c om addIndexEntry(CONSTRUCTOR_REF, ConstructorPattern.createIndexKey(simpleTypeName, argCount)); char[] innermostTypeName = CharOperation.lastSegment(simpleTypeName, '$'); if (innermostTypeName != simpleTypeName) addIndexEntry(CONSTRUCTOR_REF, ConstructorPattern.createIndexKey(innermostTypeName, argCount)); }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.indexing.AbstractIndexer.java
License:Open Source License
public void addDefaultConstructorDeclaration(char[] typeName, char[] packageName, int typeModifiers, int extraFlags) { addIndexEntry(CONSTRUCTOR_DECL, ConstructorPattern.createDefaultDeclarationIndexKey( CharOperation.lastSegment(typeName, '.'), packageName, typeModifiers, extraFlags)); }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.indexing.AbstractIndexer.java
License:Open Source License
public void addTypeReference(char[] typeName) { addNameReference(CharOperation.lastSegment(typeName, '.')); }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.PackageReferenceLocator.java
License:Open Source License
public static boolean isDeclaringPackageFragment(IPackageFragment packageFragment, ReferenceBinding typeBinding) {/*w ww . java2s .co m*/ char[] fileName = typeBinding.getFileName(); if (fileName != null) { // retrieve the actual file name from the full path (sources are generally only containing it already) fileName = CharOperation.replaceOnCopy(fileName, '/', '\\'); // ensure to not do any side effect on file name (see https://bugs.eclipse // .org/bugs/show_bug.cgi?id=136016) fileName = CharOperation.lastSegment(fileName, '\\'); try { switch (packageFragment.getKind()) { case IPackageFragmentRoot.K_SOURCE: if (!org.eclipse.jdt.internal.core.util.Util.isJavaLikeFileName(fileName) || !packageFragment.getCompilationUnit(new String(fileName)).exists()) { return false; // unit doesn't live in selected package } break; case IPackageFragmentRoot.K_BINARY: // if (Util.isJavaFileName(fileName)) { // binary with attached source // int length = fileName.length; // System.arraycopy(fileName, 0, fileName = new char[length], 0, length - 4); // copy all but extension // System.arraycopy(SuffixConstants.SUFFIX_class, 0, fileName, length - 4, 4); // } if (!Util.isClassFileName(fileName) || !packageFragment.getClassFile(new String(fileName)).exists()) { return false; // classfile doesn't live in selected package } break; } } catch (JavaModelException e) { // unable to determine kind; tolerate this match } } return true; // by default, do not eliminate }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.SuperTypeReferencePattern.java
License:Open Source License
public static char[] createIndexKey(int modifiers, char[] packageName, char[] typeName, char[][] enclosingTypeNames, char[][] typeParameterSignatures, char classOrInterface, char[] superTypeName, char superClassOrInterface) { if (superTypeName == null) superTypeName = OBJECT;// ww w. j a v a 2s . c om char[] superSimpleName = CharOperation.lastSegment(superTypeName, '.'); char[] superQualification = null; if (superSimpleName != superTypeName) { int length = superTypeName.length - superSimpleName.length - 1; superQualification = new char[length]; System.arraycopy(superTypeName, 0, superQualification, 0, length); } // if the supertype name contains a $, then split it into: source name and append the $ prefix to the qualification // e.g. p.A$B ---> p.A$ + B char[] superTypeSourceName = CharOperation.lastSegment(superSimpleName, '$'); if (superTypeSourceName != superSimpleName) { int start = superQualification == null ? 0 : superQualification.length + 1; int prefixLength = superSimpleName.length - superTypeSourceName.length; char[] mangledQualification = new char[start + prefixLength]; if (superQualification != null) { System.arraycopy(superQualification, 0, mangledQualification, 0, start - 1); mangledQualification[start - 1] = '.'; } System.arraycopy(superSimpleName, 0, mangledQualification, start, prefixLength); superQualification = mangledQualification; superSimpleName = superTypeSourceName; } char[] simpleName = CharOperation.lastSegment(typeName, '.'); char[] enclosingTypeName = CharOperation.concatWith(enclosingTypeNames, '$'); if (superQualification != null && CharOperation.equals(superQualification, packageName)) packageName = ONE_ZERO; // save some space char[] typeParameters = CharOperation.NO_CHAR; int typeParametersLength = 0; if (typeParameterSignatures != null) { StringBuffer buffer = new StringBuffer(); for (int i = 0, length = typeParameterSignatures.length; i < length; i++) { char[] typeParameter = typeParameterSignatures[i]; buffer.append(typeParameter); typeParametersLength += typeParameter.length; if (i != length - 1) { buffer.append(','); typeParametersLength++; } } typeParameters = new char[typeParametersLength]; buffer.getChars(0, typeParametersLength, typeParameters, 0); } // superSimpleName / superQualification / simpleName / enclosingTypeName / typeParameters / packageName / superClassOrInterface classOrInterface modifiers int superLength = superSimpleName == null ? 0 : superSimpleName.length; int superQLength = superQualification == null ? 0 : superQualification.length; int simpleLength = simpleName == null ? 0 : simpleName.length; int enclosingLength = enclosingTypeName == null ? 0 : enclosingTypeName.length; int packageLength = packageName == null ? 0 : packageName.length; char[] result = new char[superLength + superQLength + simpleLength + enclosingLength + typeParametersLength + packageLength + 9]; int pos = 0; if (superLength > 0) { System.arraycopy(superSimpleName, 0, result, pos, superLength); pos += superLength; } result[pos++] = SEPARATOR; if (superQLength > 0) { System.arraycopy(superQualification, 0, result, pos, superQLength); pos += superQLength; } result[pos++] = SEPARATOR; if (simpleLength > 0) { System.arraycopy(simpleName, 0, result, pos, simpleLength); pos += simpleLength; } result[pos++] = SEPARATOR; if (enclosingLength > 0) { System.arraycopy(enclosingTypeName, 0, result, pos, enclosingLength); pos += enclosingLength; } result[pos++] = SEPARATOR; if (typeParametersLength > 0) { System.arraycopy(typeParameters, 0, result, pos, typeParametersLength); pos += typeParametersLength; } result[pos++] = SEPARATOR; if (packageLength > 0) { System.arraycopy(packageName, 0, result, pos, packageLength); pos += packageLength; } result[pos++] = SEPARATOR; result[pos++] = superClassOrInterface; result[pos++] = classOrInterface; result[pos] = (char) modifiers; return result; }
From source file:net.harawata.mybatipse.mybatis.ProposalComputorHelper.java
License:Open Source License
private static void proposeNamespaces(List<ICompletionProposal> results, IJavaProject project, String partialNamespace, String currentNamespace, char[] matchChrs, int start, int length) { for (String namespace : MapperNamespaceCache.getInstance().getCacheMap(project, null).keySet()) { if (!namespace.equals(currentNamespace) && namespace.startsWith(partialNamespace) && !namespace.equals(partialNamespace)) { char[] simpleName = CharOperation.lastSegment(namespace.toCharArray(), '.'); if (matchChrs.length == 0 || CharOperation.camelCaseMatch(matchChrs, simpleName)) { StringBuilder replacementStr = new StringBuilder().append(namespace).append('.'); int cursorPos = replacementStr.length(); String displayString = new StringBuilder().append(simpleName).append(" - ").append(namespace) .toString();/*from ww w. j ava 2s . c om*/ results.add(new JavaCompletionProposal(replacementStr.toString(), start, length, cursorPos, Activator.getIcon("/icons/mybatis-ns.png"), displayString, null, null, 100)); } } } }
From source file:net.harawata.mybatipse.mybatis.ProposalComputorHelper.java
License:Open Source License
public static void searchJavaType(String matchString, IJavaSearchScope scope, TypeNameRequestor requestor) throws JavaModelException { char[] searchPkg = null; char[] searchType = null; if (matchString != null && matchString.length() > 0) { char[] match = matchString.toCharArray(); int lastDotPos = matchString.lastIndexOf('.'); if (lastDotPos == -1) { searchType = match;// www . j av a 2 s . c om } else { if (lastDotPos + 1 < match.length) { searchType = CharOperation.lastSegment(match, '.'); } searchPkg = Arrays.copyOfRange(match, 0, lastDotPos); } } SearchEngine searchEngine = new SearchEngine(); searchEngine.searchAllTypeNames(searchPkg, SearchPattern.R_PREFIX_MATCH, searchType, SearchPattern.R_CAMELCASE_MATCH, IJavaSearchConstants.CLASS, scope, requestor, IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null); }
From source file:net.harawata.mybatipse.mybatis.XmlCompletionProposalComputer.java
License:Open Source License
private void proposeNamespace(ContentAssistRequest contentAssistRequest, IJavaProject project, IDOMNode node, String partialNamespace, char[] matchChrs, int start, int length, String replacementSuffix) throws XPathExpressionException { String currentNamespace = XpathUtil.xpathString(node.getOwnerDocument(), "//mapper/@namespace"); final List<ICompletionProposal> results = new ArrayList<ICompletionProposal>(); for (String namespace : MapperNamespaceCache.getInstance().getCacheMap(project, null).keySet()) { if (!namespace.equals(currentNamespace) && namespace.startsWith(partialNamespace) && !namespace.equals(partialNamespace)) { char[] simpleName = CharOperation.lastSegment(namespace.toCharArray(), '.'); if (matchChrs.length == 0 || CharOperation.camelCaseMatch(matchChrs, simpleName)) { StringBuilder replacementStr = new StringBuilder().append(namespace).append('.'); int cursorPos = replacementStr.length(); if (replacementSuffix != null) replacementStr.append(replacementSuffix); String displayString = new StringBuilder().append(simpleName).append(" - ").append(namespace) .toString();/*from ww w . j av a2 s . c om*/ results.add(new CompletionProposal(replacementStr.toString(), start, length, cursorPos, Activator.getIcon("/icons/mybatis-ns.png"), displayString, null, null)); } } } addProposals(contentAssistRequest, results); }
From source file:net.harawata.mybatipse.mybatis.XmlCompletionProposalComputer.java
License:Open Source License
private void searchJavaType(String matchString, IJavaSearchScope scope, TypeNameRequestor requestor) throws JavaModelException { char[] searchPkg = null; char[] searchType = null; if (matchString != null && matchString.length() > 0) { char[] match = matchString.toCharArray(); int lastDotPos = matchString.lastIndexOf('.'); if (lastDotPos == -1) { searchType = match;//w w w. jav a2 s .com } else { if (lastDotPos + 1 < match.length) { searchType = CharOperation.lastSegment(match, '.'); } searchPkg = Arrays.copyOfRange(match, 0, lastDotPos); } } SearchEngine searchEngine = new SearchEngine(); searchEngine.searchAllTypeNames(searchPkg, SearchPattern.R_PREFIX_MATCH, searchType, SearchPattern.R_CAMELCASE_MATCH, IJavaSearchConstants.CLASS, scope, requestor, IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null); }