List of usage examples for org.eclipse.jdt.core IJavaElement FIELD
int FIELD
To view the source code for org.eclipse.jdt.core IJavaElement FIELD.
Click Source Link
From source file:org.eclipse.che.jdt.refactoring.RefactoringManager.java
License:Open Source License
private RenameWizard getWizardType(IJavaElement element) throws JavaModelException { switch (element.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT: return RenameWizard.PACKAGE; case IJavaElement.COMPILATION_UNIT: return RenameWizard.COMPILATION_UNIT; case IJavaElement.TYPE: return RenameWizard.TYPE; case IJavaElement.METHOD: final IMethod method = (IMethod) element; if (method.isConstructor()) return RenameWizard.TYPE; else//from ww w.ja va 2 s. com return RenameWizard.METHOD; case IJavaElement.FIELD: if (JdtFlags.isEnum((IMember) element)) { return RenameWizard.ENUM_CONSTANT; } return RenameWizard.FIELD; case IJavaElement.TYPE_PARAMETER: return RenameWizard.TYPE_PARAMETER; case IJavaElement.LOCAL_VARIABLE: return RenameWizard.LOCAL_VARIABLE; } return null; }
From source file:org.eclipse.che.jdt.refactoring.session.RenameLinkedModeRefactoringSession.java
License:Open Source License
/** * Creates a rename descriptor./* www.j a va 2 s. c o m*/ * * @param javaElement element to rename * @param newName new name * @return a rename descriptor with current settings as used in the refactoring dialogs * @throws JavaModelException if an error occurs while accessing the element */ private RenameJavaElementDescriptor createRenameDescriptor(IJavaElement javaElement, String newName) throws JavaModelException { String contributionId; // see RefactoringExecutionStarter#createRenameSupport(..): int elementType = javaElement.getElementType(); switch (elementType) { case IJavaElement.JAVA_PROJECT: contributionId = IJavaRefactorings.RENAME_JAVA_PROJECT; break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: contributionId = IJavaRefactorings.RENAME_SOURCE_FOLDER; break; case IJavaElement.PACKAGE_FRAGMENT: contributionId = IJavaRefactorings.RENAME_PACKAGE; break; case IJavaElement.COMPILATION_UNIT: contributionId = IJavaRefactorings.RENAME_COMPILATION_UNIT; break; case IJavaElement.TYPE: contributionId = IJavaRefactorings.RENAME_TYPE; break; case IJavaElement.METHOD: final IMethod method = (IMethod) javaElement; if (method.isConstructor()) return createRenameDescriptor(method.getDeclaringType(), newName); else contributionId = IJavaRefactorings.RENAME_METHOD; break; case IJavaElement.FIELD: IField field = (IField) javaElement; if (field.isEnumConstant()) contributionId = IJavaRefactorings.RENAME_ENUM_CONSTANT; else contributionId = IJavaRefactorings.RENAME_FIELD; break; case IJavaElement.TYPE_PARAMETER: contributionId = IJavaRefactorings.RENAME_TYPE_PARAMETER; break; case IJavaElement.LOCAL_VARIABLE: contributionId = IJavaRefactorings.RENAME_LOCAL_VARIABLE; break; default: return null; } RenameJavaElementDescriptor descriptor = (RenameJavaElementDescriptor) RefactoringCore .getRefactoringContribution(contributionId).createDescriptor(); descriptor.setJavaElement(javaElement); descriptor.setNewName(newName); if (elementType != IJavaElement.PACKAGE_FRAGMENT_ROOT) descriptor.setUpdateReferences(true); // IDialogSettings javaSettings= JavaPlugin.getDefault().getDialogSettings(); // IDialogSettings refactoringSettings= javaSettings.getSection(RefactoringWizardPage.REFACTORING_SETTINGS); //TODO: undocumented API // if (refactoringSettings == null) { // refactoringSettings= javaSettings.addNewSection(RefactoringWizardPage.REFACTORING_SETTINGS); // } switch (elementType) { case IJavaElement.METHOD: case IJavaElement.FIELD: descriptor.setDeprecateDelegate( /*refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_DEPRECATION)*/false); descriptor .setKeepOriginal(/*refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_UPDATING)*/ false); } switch (elementType) { case IJavaElement.TYPE: // case IJavaElement.COMPILATION_UNIT: // TODO descriptor.setUpdateSimilarDeclarations( /*refactoringSettings.getBoolean(RenameRefactoringWizard.TYPE_UPDATE_SIMILAR_ELEMENTS)*/ false); int strategy; try { strategy = 1; //refactoringSettings.getInt(RenameRefactoringWizard.TYPE_SIMILAR_MATCH_STRATEGY); } catch (NumberFormatException e) { strategy = RenamingNameSuggestor.STRATEGY_EXACT; } descriptor.setMatchStrategy(strategy); } switch (elementType) { case IJavaElement.PACKAGE_FRAGMENT: descriptor.setUpdateHierarchy( /*refactoringSettings.getBoolean(RenameRefactoringWizard.PACKAGE_RENAME_SUBPACKAGES)*/true); } switch (elementType) { case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.TYPE: String fileNamePatterns = /*refactoringSettings.get(RenameRefactoringWizard.QUALIFIED_NAMES_PATTERNS)*/"*"; if (fileNamePatterns != null && fileNamePatterns.length() != 0) { descriptor.setFileNamePatterns(fileNamePatterns); boolean updateQualifiedNames = /*refactoringSettings.getBoolean(RenameRefactoringWizard.UPDATE_QUALIFIED_NAMES)*/false; descriptor.setUpdateQualifiedNames(updateQualifiedNames); // fShowPreview|= updateQualifiedNames; } } switch (elementType) { case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.TYPE: case IJavaElement.FIELD: boolean updateTextualOccurrences = false; //refactoringSettings.getBoolean(RenameRefactoringWizard.UPDATE_TEXTUAL_MATCHES); descriptor.setUpdateTextualOccurrences(updateTextualOccurrences); // fShowPreview|= updateTextualOccurrences; } switch (elementType) { case IJavaElement.FIELD: descriptor.setRenameGetters( /*refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_GETTER)*/false); descriptor.setRenameSetters( /*refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_SETTER)*/false); } return descriptor; }
From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the label for a Java element with the flags as defined by this * class./*w ww . j ava 2 s . c o m*/ * * @param element * the element to render * @param flags * the rendering flags. */ public void appendElementLabel(IJavaElement element, long flags) { int type = element.getElementType(); IPackageFragmentRoot root = null; if (type != IJavaElement.JAVA_MODEL && type != IJavaElement.JAVA_PROJECT && type != IJavaElement.PACKAGE_FRAGMENT_ROOT) root = JavaModelUtil.getPackageFragmentRoot(element); if (root != null && getFlag(flags, JavaElementLabels.PREPEND_ROOT_PATH)) { appendPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED); fBuffer.append(JavaElementLabels.CONCAT_STRING); } switch (type) { case IJavaElement.METHOD: appendMethodLabel((IMethod) element, flags); break; case IJavaElement.FIELD: appendFieldLabel((IField) element, flags); break; case IJavaElement.LOCAL_VARIABLE: appendLocalVariableLabel((ILocalVariable) element, flags); break; case IJavaElement.TYPE_PARAMETER: appendTypeParameterLabel((ITypeParameter) element, flags); break; case IJavaElement.INITIALIZER: appendInitializerLabel((IInitializer) element, flags); break; case IJavaElement.TYPE: appendTypeLabel((IType) element, flags); break; case IJavaElement.CLASS_FILE: appendClassFileLabel((IClassFile) element, flags); break; case IJavaElement.COMPILATION_UNIT: appendCompilationUnitLabel((ICompilationUnit) element, flags); break; case IJavaElement.PACKAGE_FRAGMENT: appendPackageFragmentLabel((IPackageFragment) element, flags); break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: appendPackageFragmentRootLabel((IPackageFragmentRoot) element, flags); break; case IJavaElement.IMPORT_CONTAINER: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.PACKAGE_DECLARATION: appendDeclarationLabel(element, flags); break; case IJavaElement.JAVA_PROJECT: case IJavaElement.JAVA_MODEL: fBuffer.append(element.getElementName()); break; default: fBuffer.append(element.getElementName()); } if (root != null && getFlag(flags, JavaElementLabels.APPEND_ROOT_PATH)) { int offset = fBuffer.length(); fBuffer.append(JavaElementLabels.CONCAT_STRING); appendPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED); if (getFlag(flags, JavaElementLabels.COLORIZE)) { fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE); } } }
From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the label for a type. Considers the T_* flags. * //from ww w. j a v a 2 s .c o m * @param type * the element to render * @param flags * the rendering flags. Flags with names starting with 'T_' are * considered. */ public void appendTypeLabel(IType type, long flags) { if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED)) { IPackageFragment pack = type.getPackageFragment(); if (!pack.isDefaultPackage()) { appendPackageFragmentLabel(pack, (flags & QUALIFIER_FLAGS)); fBuffer.append('.'); } } if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED | JavaElementLabels.T_CONTAINER_QUALIFIED)) { IType declaringType = type.getDeclaringType(); if (declaringType != null) { appendTypeLabel(declaringType, JavaElementLabels.T_CONTAINER_QUALIFIED | (flags & QUALIFIER_FLAGS)); fBuffer.append('.'); } int parentType = type.getParent().getElementType(); if (parentType == IJavaElement.METHOD || parentType == IJavaElement.FIELD || parentType == IJavaElement.INITIALIZER) { // anonymous or // local appendElementLabel(type.getParent(), 0); fBuffer.append('.'); } } String typeName = getElementName(type); if (typeName.length() == 0) { // anonymous try { if (type.getParent() instanceof IField && type.isEnum()) { typeName = '{' + JavaElementLabels.ELLIPSIS_STRING + '}'; } else { String supertypeName; String[] superInterfaceSignatures = type.getSuperInterfaceTypeSignatures(); if (superInterfaceSignatures.length > 0) { supertypeName = getSimpleTypeName(type, superInterfaceSignatures[0]); } else { supertypeName = getSimpleTypeName(type, type.getSuperclassTypeSignature()); } typeName = messages.JavaElementLabels_anonym_type(supertypeName); } } catch (JavaModelException e) { // ignore typeName = messages.JavaElementLabels_anonym(); } } fBuffer.append(typeName); if (getFlag(flags, JavaElementLabels.T_TYPE_PARAMETERS)) { if (getFlag(flags, JavaElementLabels.USE_RESOLVED) && type.isResolved()) { BindingKey key = new BindingKey(type.getKey()); if (key.isParameterizedType()) { String[] typeArguments = key.getTypeArguments(); appendTypeArgumentSignaturesLabel(type, typeArguments, flags); } else { String[] typeParameters = Signature.getTypeParameters(key.toSignature()); appendTypeParameterSignaturesLabel(typeParameters, flags); } } else if (type.exists()) { try { appendTypeParametersLabels(type.getTypeParameters(), flags); } catch (JavaModelException e) { // ignore } } } // category if (getFlag(flags, JavaElementLabels.T_CATEGORY) && type.exists()) { try { appendCategoryLabel(type, flags); } catch (JavaModelException e) { // ignore } } // post qualification if (getFlag(flags, JavaElementLabels.T_POST_QUALIFIED)) { int offset = fBuffer.length(); fBuffer.append(JavaElementLabels.CONCAT_STRING); IType declaringType = type.getDeclaringType(); if (declaringType != null) { appendTypeLabel(declaringType, JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); int parentType = type.getParent().getElementType(); if (parentType == IJavaElement.METHOD || parentType == IJavaElement.FIELD || parentType == IJavaElement.INITIALIZER) { // anonymous // or // local fBuffer.append('.'); appendElementLabel(type.getParent(), 0); } } else { appendPackageFragmentLabel(type.getPackageFragment(), flags & QUALIFIER_FLAGS); } if (getFlag(flags, JavaElementLabels.COLORIZE)) { fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE); } } }
From source file:org.eclipse.emf.ecore.xcore.ui.refactoring.XcoreRenameRefactoringProcessorFactory.java
License:Open Source License
@Override public JavaRenameProcessor createRenameProcessor(IJavaElement element) { try {/*w ww . j a v a 2 s .c om*/ switch (element.getElementType()) { case IJavaElement.TYPE: { return new RenameTypeProcessor((IType) element); } case IJavaElement.FIELD: { return new RenameFieldProcessor((IField) element); } case IJavaElement.METHOD: { return Flags.isStatic(((IMethod) element).getFlags()) ? new RenameNonVirtualMethodProcessor((IMethod) element) : new RenameVirtualMethodProcessor((IMethod) element); } case IJavaElement.TYPE_PARAMETER: { return new RenameTypeParameterProcessor((ITypeParameter) element); } case IJavaElement.LOCAL_VARIABLE: { return new RenameLocalVariableProcessor((ILocalVariable) element); } } } catch (JavaModelException exc) { LOG.error("Error creating refactoring processor for " + element.getElementName(), exc); } return null; }
From source file:org.eclipse.jst.common.internal.annotations.ui.AnnotationTagCompletionProc.java
License:Open Source License
/** * Calculates the the area of the annotation we're trying to complete. Also initializes * m_tagScope.//from w ww .j a v a 2 s.c o m * * @param fromOffset * @return * @throws JavaModelException */ private AnnotationArea getAnnotationArea(int fromOffset) throws JavaModelException { // First, roughly calculate the end of the comment. IJavaElement el = m_icu.getElementAt(fromOffset); int absmax, absmin; if (el == null) return null; int ty = el.getElementType(); switch (ty) { case IJavaElement.FIELD: IField f = (IField) el; absmax = f.getNameRange().getOffset(); absmin = f.getSourceRange().getOffset(); m_tagScope = TagSpec.FIELD; break; case IJavaElement.TYPE: IType t = (IType) el; absmax = t.getNameRange().getOffset(); absmin = t.getSourceRange().getOffset(); m_tagScope = TagSpec.TYPE; break; case IJavaElement.METHOD: IMethod m = (IMethod) el; absmax = m.getNameRange().getOffset(); absmin = m.getSourceRange().getOffset(); m_tagScope = TagSpec.METHOD; break; default: m_tagScope = -1; return null; } // Make sure we're not after the name for the member. if (absmax < fromOffset) { return null; } int min = 0, max = 0; try { // Search backwards for the starting '@'. boolean found = false; for (min = fromOffset; min >= absmin; min--) { if (m_doc.getChar(min) == '@') { found = true; break; } } if (!found) { return null; } // Search forwards for the next '@', or the end of the comment. for (max = fromOffset + 1; max < absmax; max++) { if (m_doc.getChar(max) == '@') { break; } } } catch (BadLocationException e) { return null; } return new AnnotationArea(el, min, Math.min(absmax, max)); }
From source file:org.eclipse.jst.jee.model.internal.common.AbstractAnnotationFactory.java
License:Open Source License
protected void processEjbAnnotation(IAnnotation annotation, List<EjbLocalRef> localRefs, IMember member, Collection<IType> dependedTypes) throws JavaModelException { int memberType = member.getElementType(); IMemberValuePair[] pairs = annotation.getMemberValuePairs(); String beanInterfaceValue = (String) getAnnotatedValue("beanInterface", pairs); //$NON-NLS-1$ beanInterfaceValue = internalProcessInjection(beanInterfaceValue, member, dependedTypes); if (beanInterfaceValue == null) return;// w w w . j a va 2 s. com /* * The name of the reference should be the value of the "name" * attribute. If there is no "name" attribute then the name of the * reference is the qualified name of the member. Check this at * Enterprise Java Beans, 3.0, Section 14.1.5.3 */ String refName = (String) getAnnotatedValue("name", pairs); //$NON-NLS-1$ if (refName == null) { refName = getMemberQualifiedName(member); } EjbLocalRef ref = JavaeeFactory.eINSTANCE.createEjbLocalRef(); ref.setEjbRefName(refName); localRefs.add(ref); ref.setLocal(beanInterfaceValue); ref.setLocalHome(beanInterfaceValue); ref.setEjbLink((String) getAnnotatedValue("beanName", pairs)); //$NON-NLS-1$ ref.setMappedName((String) getAnnotatedValue("mappedName", pairs)); //$NON-NLS-1$ if (memberType == IJavaElement.METHOD || memberType == IJavaElement.FIELD) { createInjectionTarget(refName, ref.getInjectionTargets(), annotation); } }
From source file:org.eclipse.jst.jee.model.internal.common.AbstractAnnotationFactory.java
License:Open Source License
/** * Resource annotation can be placed on class, method, field. * //from www.j a v a 2s . co m * Checks are made if the resource annotation is valid. * <p> * If on class there should be a "type" attribute. If on method the method * must have one param with type that is an interface. If on field the field * type must be an interface. * * If the type of the method/field can not be resolved the result will * contain the unresolved value. * * In case the type of method/field is array, wildcard, simple type this is * not a place for the annotation. * </p> * * <p> * In case of method/field the type specified using the "type" attribute has * a higher priority that the method/field type. * </p> * * <p> * Only resolved types are added to dependedTypes * </p> * * @param sessionBean * @param member * @param annotation * @param dependedTypes * @throws JavaModelException */ protected void processResourceRefAnnotation(IAnnotation annotation, List<ResourceRef> resourceRefs, IMember member, Collection<IType> dependedTypes) throws JavaModelException { IMemberValuePair[] pairs = annotation.getMemberValuePairs(); String specifiedType = (String) getAnnotatedValue("type", pairs); //$NON-NLS-1$ specifiedType = internalProcessInjection(specifiedType, member, dependedTypes); if (specifiedType == null) return; String refName = (String) getAnnotatedValue("name", pairs); //$NON-NLS-1$ if (refName == null) refName = getMemberQualifiedName(member); ResourceRef ref = JavaeeFactory.eINSTANCE.createResourceRef(); ref.setResRefName(refName); ref.setResType(specifiedType); ref.setMappedName((String) getAnnotatedValue("mappedName", pairs)); //$NON-NLS-1$ String description = (String) getAnnotatedValue("description", pairs); //$NON-NLS-1$ if (description != null) { Description desc = JavaeeFactory.eINSTANCE.createDescription(); desc.setValue(description); ref.getDescriptions().clear(); ref.getDescriptions().add(desc); } if (member.getElementType() == IJavaElement.METHOD || member.getElementType() == IJavaElement.FIELD) { createInjectionTarget(refName, ref.getInjectionTargets(), annotation); } String value = (String) getAnnotatedValue("authenticationType", pairs); //$NON-NLS-1$ /* * the default value is AuthenticationType.APPLICATION which is handled * by the EMF. no need to check for this value */ if ("AuthenticationType.CONTAINER".equals(value)) { //$NON-NLS-1$ ref.setResAuth(ResAuthType.CONTAINER_LITERAL); } else if ("CONTAINER".equals(value) //$NON-NLS-1$ && containsImport(member.getCompilationUnit(), "AuthenticationType.CONTAINER")) { //$NON-NLS-1$ ref.setResAuth(ResAuthType.CONTAINER_LITERAL); } Boolean shareable = (Boolean) getAnnotatedValue("shareable", pairs); //$NON-NLS-1$ /* * The default value for sharable is true. Check and process only * unsharable */ if (Boolean.FALSE.equals(shareable)) ref.setResSharingScope(ResSharingScopeType.UNSHAREABLE_LITERAL); resourceRefs.add(ref); }
From source file:org.eclipse.jst.jee.model.internal.common.AbstractAnnotationFactory.java
License:Open Source License
/** * The method has the task of processing the member along with the specified * member and return a String. The result is to be used as a reference value * for the injection on this member. Usage are the * // ww w . j a v a 2 s . c om * @EJB and * @Resource annotations. * * <p> * If the specifiedType is <code>null</code> and member is of type * IJavaElement.TYPE the method returns <code>null</code> * </p> * * <p> * If the type of the member can be resolved and is an interface the method * returns <code>null</code>. Here the "type" of the member is the result * from {@link #getUnresolvedType(IMember)} * </p> * * * Only if the specifiedType can be calculated and is resolved it is added * to the dependedTypes. If the specifiedType can not be resolved nothing is * added to dependedTypes. * * @see {@link #processEjbAnnotation(IAnnotation, SessionBean, IMember, Collection)} * @see #processResourceRefAnnotation(SessionBean, IMember, IAnnotation, * Collection) * * @param specifiedType * @param member * @param dependedTypes * @return * @throws JavaModelException */ private String internalProcessInjection(final String specifiedType, IMember member, Collection<IType> dependedTypes) throws JavaModelException { boolean methodOrField = member.getElementType() == IJavaElement.METHOD || member.getElementType() == IJavaElement.FIELD; IType declaringType = (IType) (member.getElementType() == IJavaElement.TYPE ? member : member.getDeclaringType()); String memberType = getUnresolvedType(member); // not type for this member can be retrieved. If member is a method or // field this means there is an error. if (getClassTypeSignature(memberType) == null && methodOrField) return null; // both type are null. This is not a valid case. This will hapen for a // type without specified type. if (specifiedType == null && memberType == null) return null; String innerSpecifiedType = specifiedType; IType resolvedType = resolveType(declaringType, memberType); // we were able to get a type for the param of a method or type of // a field. // check if it is an interface. It might not be resolved, but we have a // value // for unresolved. if (methodOrField) { // if the resolved type is not null and it is not an interface this // annotation is not valid if (resolvedType != null) { if (resolvedType.isInterface()) memberType = resolvedType.getFullyQualifiedName(); else // invalid - if the method is with param that is not an // interface. Or the type of the field is not an interface. return null; } } // from now one use only the specified type for type resolving. If there // is no specified type use the member type. The check for whether they // were both null is previously made IType resolvedSpecifiedType = null; if (innerSpecifiedType == null) { innerSpecifiedType = memberType; resolvedSpecifiedType = resolvedType; } else resolvedSpecifiedType = resolveType(declaringType, innerSpecifiedType); if (resolvedSpecifiedType != null) { if (resolvedSpecifiedType.isInterface()) { innerSpecifiedType = resolvedSpecifiedType.getFullyQualifiedName(); dependedTypes.add(resolvedSpecifiedType); } else // we have resolved the specified type and it is not an // interface. Not a valid annotation. return null; } return innerSpecifiedType; }
From source file:org.eclipse.jst.jee.model.internal.common.AbstractAnnotationFactory.java
License:Open Source License
/** * Return the javaee type of this member. For types return <code>null</code>. * For methods with one param return the java type of this param. For fields * return the return the java type of the field. * /*from www . j a va2 s . co m*/ * If the result is <code>null</code> then this member is not valid and a * javaee type can not be returned. This may happen for a method with more * then one param or for a field with a class type or primitive type * * @param member * @param memberType * * @return * @throws JavaModelException */ private String getUnresolvedType(IMember member) throws JavaModelException { int memberType = member.getElementType(); String unresolvedTypeName = null; if (memberType == IJavaElement.FIELD) { unresolvedTypeName = Signature.toString(((IField) member).getTypeSignature()); } else if (memberType == IJavaElement.METHOD) { IMethod method = (IMethod) member; if (method.getNumberOfParameters() != 1) return null; unresolvedTypeName = Signature.toString(method.getParameterTypes()[0]); } else if (memberType == IJavaElement.TYPE) return null; return unresolvedTypeName; }