List of usage examples for org.eclipse.jdt.internal.core JavaElement getHandleFromMemento
public IJavaElement getHandleFromMemento(MementoTokenizer memento, WorkingCopyOwner owner)
From source file:com.codenvy.ide.ext.java.server.internal.core.BinaryType.java
License:Open Source License
public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner workingCopyOwner) { switch (token.charAt(0)) { case JEM_COUNT: return getHandleUpdatingCountFromMemento(memento, workingCopyOwner); case JEM_FIELD: if (!memento.hasMoreTokens()) return this; String fieldName = memento.nextToken(); JavaElement field = (JavaElement) getField(fieldName); return field.getHandleFromMemento(memento, workingCopyOwner); case JEM_INITIALIZER: if (!memento.hasMoreTokens()) return this; String count = memento.nextToken(); JavaElement initializer = (JavaElement) getInitializer(Integer.parseInt(count)); return initializer.getHandleFromMemento(memento, workingCopyOwner); case JEM_METHOD: if (!memento.hasMoreTokens()) return this; String selector = memento.nextToken(); ArrayList params = new ArrayList(); nextParam: while (memento.hasMoreTokens()) { token = memento.nextToken(); switch (token.charAt(0)) { case JEM_TYPE: case JEM_TYPE_PARAMETER: case JEM_ANNOTATION: break nextParam; case JEM_METHOD: if (!memento.hasMoreTokens()) return this; String param = memento.nextToken(); StringBuffer buffer = new StringBuffer(); while (param.length() == 1 && Signature.C_ARRAY == param.charAt(0)) { // backward compatible with 3.0 mementos buffer.append(Signature.C_ARRAY); if (!memento.hasMoreTokens()) return this; param = memento.nextToken(); }/*from w w w . j ava2s .c om*/ params.add(buffer.toString() + param); break; default: break nextParam; } } String[] parameters = new String[params.size()]; params.toArray(parameters); JavaElement method = (JavaElement) getMethod(selector, parameters); switch (token.charAt(0)) { case JEM_LAMBDA_EXPRESSION: case JEM_TYPE: case JEM_TYPE_PARAMETER: case JEM_LOCALVARIABLE: case JEM_ANNOTATION: return method.getHandleFromMemento(token, memento, workingCopyOwner); default: return method; } case JEM_TYPE: String typeName; if (memento.hasMoreTokens()) { typeName = memento.nextToken(); char firstChar = typeName.charAt(0); if (firstChar == JEM_FIELD || firstChar == JEM_INITIALIZER || firstChar == JEM_METHOD || firstChar == JEM_TYPE || firstChar == JEM_COUNT) { token = typeName; typeName = ""; //$NON-NLS-1$ } else { token = null; } } else { typeName = ""; //$NON-NLS-1$ token = null; } JavaElement type = (JavaElement) getType(typeName); if (token == null) { return type.getHandleFromMemento(memento, workingCopyOwner); } else { return type.getHandleFromMemento(token, memento, workingCopyOwner); } case JEM_TYPE_PARAMETER: // if (!memento.hasMoreTokens()) return this; // String typeParameterName = memento.nextToken(); // JavaElement typeParameter = new TypeParameter(this, typeParameterName); // return typeParameter.getHandleFromMemento(memento, workingCopyOwner); throw new UnsupportedOperationException(); case JEM_ANNOTATION: // if (!memento.hasMoreTokens()) return this; // String annotationName = memento.nextToken(); // JavaElement annotation = new Annotation(this, annotationName); // return annotation.getHandleFromMemento(memento, workingCopyOwner); throw new UnsupportedOperationException(); } return null; }
From source file:com.codenvy.ide.ext.java.server.internal.core.ClassFile.java
License:Open Source License
public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner owner) { switch (token.charAt(0)) { case JEM_TYPE: if (!memento.hasMoreTokens()) return this; String typeName = memento.nextToken(); JavaElement type = new BinaryType(this, manager, typeName); return type.getHandleFromMemento(memento, owner); }//from w ww . j a v a 2 s . c o m return null; }
From source file:com.codenvy.ide.ext.java.server.internal.core.Member.java
License:Open Source License
public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner workingCopyOwner) { switch (token.charAt(0)) { case JEM_COUNT: return getHandleUpdatingCountFromMemento(memento, workingCopyOwner); case JEM_LAMBDA_EXPRESSION: // if (!memento.hasMoreTokens() || memento.nextToken() != MementoTokenizer.STRING) // return this; // if (!memento.hasMoreTokens()) return this; // String interphase = memento.nextToken(); // if (!memento.hasMoreTokens() || memento.nextToken() != MementoTokenizer.COUNT) // return this; // int sourceStart = Integer.parseInt(memento.nextToken()); // if (!memento.hasMoreTokens() || memento.nextToken() != MementoTokenizer.COUNT) // return this; // int sourceEnd = Integer.parseInt(memento.nextToken()); // if (!memento.hasMoreTokens() || memento.nextToken() != MementoTokenizer.COUNT) // return this; // int arrowPosition = Integer.parseInt(memento.nextToken()); // LambdaExpression expression = LambdaFactory.createLambdaExpression(this, interphase, sourceStart, sourceEnd, // arrowPosition); // if (!memento.hasMoreTokens() || (token = memento.nextToken()) != MementoTokenizer.LAMBDA_METHOD) // return expression; // return expression.getHandleFromMemento(token, memento, workingCopyOwner); throw new UnsupportedOperationException(); case JEM_TYPE: String typeName;//from w ww . j ava 2 s. c o m if (memento.hasMoreTokens()) { typeName = memento.nextToken(); char firstChar = typeName.charAt(0); if (firstChar == JEM_FIELD || firstChar == JEM_INITIALIZER || firstChar == JEM_METHOD || firstChar == JEM_TYPE || firstChar == JEM_COUNT) { token = typeName; typeName = ""; //$NON-NLS-1$ } else { token = null; } } else { typeName = ""; //$NON-NLS-1$ token = null; } JavaElement type = (JavaElement) getType(typeName, 1); if (token == null) { return type.getHandleFromMemento(memento, workingCopyOwner); } else { return type.getHandleFromMemento(token, memento, workingCopyOwner); } case JEM_LOCALVARIABLE: if (!memento.hasMoreTokens()) return this; String varName = memento.nextToken(); if (!memento.hasMoreTokens()) return this; memento.nextToken(); // JEM_COUNT if (!memento.hasMoreTokens()) return this; int declarationStart = Integer.parseInt(memento.nextToken()); if (!memento.hasMoreTokens()) return this; memento.nextToken(); // JEM_COUNT if (!memento.hasMoreTokens()) return this; int declarationEnd = Integer.parseInt(memento.nextToken()); if (!memento.hasMoreTokens()) return this; memento.nextToken(); // JEM_COUNT if (!memento.hasMoreTokens()) return this; int nameStart = Integer.parseInt(memento.nextToken()); if (!memento.hasMoreTokens()) return this; memento.nextToken(); // JEM_COUNT if (!memento.hasMoreTokens()) return this; int nameEnd = Integer.parseInt(memento.nextToken()); if (!memento.hasMoreTokens()) return this; memento.nextToken(); // JEM_COUNT if (!memento.hasMoreTokens()) return this; String typeSignature = memento.nextToken(); memento.nextToken(); // JEM_COUNT if (!memento.hasMoreTokens()) return this; int flags = Integer.parseInt(memento.nextToken()); memento.nextToken(); // JEM_COUNT if (!memento.hasMoreTokens()) return this; boolean isParameter = Boolean.valueOf(memento.nextToken()).booleanValue(); return new LocalVariable(this, manager, varName, declarationStart, declarationEnd, nameStart, nameEnd, typeSignature, null, flags, isParameter); // throw new UnsupportedOperationException(); case JEM_TYPE_PARAMETER: if (!memento.hasMoreTokens()) return this; String typeParameterName = memento.nextToken(); JavaElement typeParameter = new TypeParameter(this, manager, typeParameterName); return typeParameter.getHandleFromMemento(memento, workingCopyOwner); case JEM_ANNOTATION: if (!memento.hasMoreTokens()) return this; String annotationName = memento.nextToken(); JavaElement annotation = new Annotation(this, manager, annotationName); return annotation.getHandleFromMemento(memento, workingCopyOwner); } return null; }
From source file:com.codenvy.ide.ext.java.server.internal.core.PackageFragment.java
License:Open Source License
public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner owner) { switch (token.charAt(0)) { case JEM_CLASSFILE: if (!memento.hasMoreTokens()) return this; String classFileName = memento.nextToken(); JavaElement classFile = (JavaElement) getClassFile(classFileName); return classFile.getHandleFromMemento(memento, owner); case JEM_COMPILATIONUNIT: if (!memento.hasMoreTokens()) return this; String cuName = memento.nextToken(); JavaElement cu = new CompilationUnit(this, manager, cuName, owner); return cu.getHandleFromMemento(memento, owner); }/*from w ww. j a va 2 s . c o m*/ return null; }
From source file:org.eclipse.ajdt.core.javaelements.AJCompilationUnit.java
License:Open Source License
public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner workingCopyOwner) { JavaElement type = this; if (!(memento instanceof AJMementoTokenizer)) { memento = new AJMementoTokenizer(memento, name); }/*w w w. java2s.c om*/ if ((token.charAt(0) == JavaElement.JEM_IMPORTDECLARATION) || (token.charAt(0) == JavaElement.JEM_PACKAGEDECLARATION)) { return super.getHandleFromMemento(token, memento, workingCopyOwner); } // need to handle types ourselves, because they may contain inner aspects // (or inner classes containing inner aspects etc) while ((token.charAt(0) == AspectElement.JEM_ASPECT_TYPE) || (token.charAt(0) == JavaElement.JEM_TYPE) || (token.charAt(0) == JavaElement.JEM_ANNOTATION)) { // note that we are also testing for JEM_ANNOTATION here. // this is because when the type handle identifiers were changed prior to 2.1.1, // JEM_ASPECT_TYPE and JEM_ANNOTATION were the same. // Some people have had problems in that the old handles were cached. // this can probably be safely removed post 2.1.2. if (!memento.hasMoreTokens()) return type; String typeName = memento.nextToken(); if (token.charAt(0) == AspectElement.JEM_ASPECT_TYPE || token.charAt(0) == JavaElement.JEM_ANNOTATION) { type = new AspectElement(type, typeName); } else if (token.charAt(0) == JavaElement.JEM_TYPE) { type = getType(type, typeName); if (type == null) type = (JavaElement) getType(typeName); } if (!memento.hasMoreTokens()) return type; token = memento.nextToken(); } // handle pointcuts in a class (bug 124992) if (!(type instanceof AspectElement) && (token.charAt(0) == AspectElement.JEM_POINTCUT)) { String name = memento.nextToken(); ArrayList params = new ArrayList(); nextParam: while (memento.hasMoreTokens()) { token = memento.nextToken(); switch (token.charAt(0)) { case JEM_TYPE: case JEM_TYPE_PARAMETER: break nextParam; case AspectElement.JEM_POINTCUT: if (!memento.hasMoreTokens()) return this; String param = memento.nextToken(); StringBuffer buffer = new StringBuffer(); while (param.length() == 1 && Signature.C_ARRAY == param.charAt(0)) { // backward compatible with 3.0 mementos buffer.append(Signature.C_ARRAY); if (!memento.hasMoreTokens()) return this; param = memento.nextToken(); } params.add(buffer.toString() + param); break; default: break nextParam; } } String[] parameters = new String[params.size()]; params.toArray(parameters); JavaElement pointcut = new PointcutElement(type, name, parameters); return pointcut.getHandleFromMemento(memento, workingCopyOwner); } return type.getHandleFromMemento(token, memento, workingCopyOwner); }
From source file:org.eclipse.che.jdt.internal.core.PackageFragmentRoot.java
License:Open Source License
@Override public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner owner) { switch (token.charAt(0)) { case JEM_PACKAGEFRAGMENT: String[] pkgName;// w w w. j av a2 s . c o m if (memento.hasMoreTokens()) { token = memento.nextToken(); char firstChar = token.charAt(0); if (firstChar == JEM_CLASSFILE || firstChar == JEM_COMPILATIONUNIT || firstChar == JEM_COUNT) { pkgName = CharOperation.NO_STRINGS; } else { pkgName = Util.splitOn('.', token, 0, token.length()); token = null; } } else { pkgName = CharOperation.NO_STRINGS; token = null; } JavaElement pkg = getPackageFragment(pkgName); if (token == null) { return pkg.getHandleFromMemento(memento, owner); } else { return pkg.getHandleFromMemento(token, memento, owner); } } return null; }
From source file:org.eclipse.jdt.internal.core.PackageFragment.java
License:Open Source License
public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner owner) { switch (token.charAt(0)) { case JEM_CLASSFILE: if (!memento.hasMoreTokens()) return this; String classFileName = memento.nextToken(); JavaElement classFile = (JavaElement) getClassFile(classFileName); return classFile.getHandleFromMemento(memento, owner); case JEM_COMPILATIONUNIT: if (!memento.hasMoreTokens()) return this; String cuName = memento.nextToken(); // GROOVY start /* old {/* ww w. java 2s. c o m*/ JavaElement cu = new CompilationUnit(this, cuName, owner); } new */ JavaElement cu = LanguageSupportFactory.newCompilationUnit(this, cuName, owner); // GROOVY end return cu.getHandleFromMemento(memento, owner); } return null; }