List of usage examples for org.eclipse.jdt.core IField isEnumConstant
boolean isEnumConstant() throws JavaModelException;
From source file:com.codenvy.ide.ext.java.server.SourcesFromBytecodeGenerator.java
License:Open Source License
private void generateType(IType type, StringBuilder builder, String indent) throws JavaModelException { int flags = 0; appendAnnotationLabels(type.getAnnotations(), flags, builder, indent.substring(TAB.length())); builder.append(indent.substring(TAB.length())); builder.append(getModifiers(type.getFlags(), type.getFlags())).append(' ').append(getJavaType(type)) .append(' ').append(type.getElementName()); if (type.isResolved()) { BindingKey key = new BindingKey(type.getKey()); if (key.isParameterizedType()) { String[] typeArguments = key.getTypeArguments(); appendTypeArgumentSignaturesLabel(type, typeArguments, flags, builder); } else {/*w w w. j a v a 2s . co m*/ String[] typeParameters = Signature.getTypeParameters(key.toSignature()); appendTypeParameterSignaturesLabel(typeParameters, builder); } } else { appendTypeParametersLabels(type.getTypeParameters(), flags, builder); } if (!"java.lang.Object".equals(type.getSuperclassName()) && !"java.lang.Enum".equals(type.getSuperclassName())) { builder.append(" extends "); if (type.getSuperclassTypeSignature() != null) { // appendTypeSignatureLabel(type, type.getSuperclassTypeSignature(), flags, builder); builder.append(Signature.toString(type.getSuperclassTypeSignature())); } else { builder.append(type.getSuperclassName()); } } if (!type.isAnnotation()) { if (type.getSuperInterfaceNames().length != 0) { builder.append(" implements "); String[] signatures = type.getSuperInterfaceTypeSignatures(); if (signatures.length == 0) { signatures = type.getSuperInterfaceNames(); } for (String interfaceFqn : signatures) { builder.append(Signature.toString(interfaceFqn)).append(", "); } builder.delete(builder.length() - 2, builder.length()); } } builder.append(" {\n"); List<IField> fields = new ArrayList<>(); if (type.isEnum()) { builder.append(indent); for (IField field : type.getFields()) { if (field.isEnumConstant()) { builder.append(field.getElementName()).append(", "); } else { fields.add(field); } } if (", ".equals(builder.substring(builder.length() - 2))) { builder.delete(builder.length() - 2, builder.length()); } builder.append(";\n"); } else { fields.addAll(Arrays.asList(type.getFields())); } for (IField field : fields) { if (Flags.isSynthetic(field.getFlags())) { continue; } appendAnnotationLabels(field.getAnnotations(), flags, builder, indent); builder.append(indent).append(getModifiers(field.getFlags(), type.getFlags())); if (builder.charAt(builder.length() - 1) != ' ') { builder.append(' '); } builder.append(Signature.toCharArray(field.getTypeSignature().toCharArray())).append(' ') .append(field.getElementName()); if (field.getConstant() != null) { builder.append(" = "); if (field.getConstant() instanceof String) { builder.append('"').append(field.getConstant()).append('"'); } else { builder.append(field.getConstant()); } } builder.append(";\n"); } builder.append('\n'); for (IMethod method : type.getMethods()) { if (method.getElementName().equals("<clinit>") || Flags.isSynthetic(method.getFlags())) { continue; } appendAnnotationLabels(method.getAnnotations(), flags, builder, indent); BindingKey resolvedKey = method.isResolved() ? new BindingKey(method.getKey()) : null; String resolvedSig = (resolvedKey != null) ? resolvedKey.toSignature() : null; builder.append(indent).append(getModifiers(method.getFlags(), type.getFlags())); if (builder.charAt(builder.length() - 1) != ' ') { builder.append(' '); } if (resolvedKey != null) { if (resolvedKey.isParameterizedMethod()) { String[] typeArgRefs = resolvedKey.getTypeArguments(); if (typeArgRefs.length > 0) { appendTypeArgumentSignaturesLabel(method, typeArgRefs, flags, builder); builder.append(' '); } } else { String[] typeParameterSigs = Signature.getTypeParameters(resolvedSig); if (typeParameterSigs.length > 0) { appendTypeParameterSignaturesLabel(typeParameterSigs, builder); builder.append(' '); } } } else if (method.exists()) { ITypeParameter[] typeParameters = method.getTypeParameters(); if (typeParameters.length > 0) { appendTypeParametersLabels(typeParameters, flags, builder); builder.append(' '); } } if (!method.isConstructor()) { String returnTypeSig = resolvedSig != null ? Signature.getReturnType(resolvedSig) : method.getReturnType(); appendTypeSignatureLabel(method, returnTypeSig, 0, builder); builder.append(' '); // builder.append(Signature.toCharArray(method.getReturnType().toCharArray())).append(' '); } builder.append(method.getElementName()); builder.append('('); for (ILocalVariable variable : method.getParameters()) { builder.append(Signature.toString(variable.getTypeSignature())); builder.append(' ').append(variable.getElementName()).append(", "); } if (builder.charAt(builder.length() - 1) == ' ') { builder.delete(builder.length() - 2, builder.length()); } builder.append(')'); String[] exceptionTypes = method.getExceptionTypes(); if (exceptionTypes != null && exceptionTypes.length != 0) { builder.append(' ').append("throws "); for (String exceptionType : exceptionTypes) { builder.append(Signature.toCharArray(exceptionType.toCharArray())).append(", "); } builder.delete(builder.length() - 2, builder.length()); } if (type.isInterface() || type.isAnnotation()) { builder.append(";\n\n"); } else { builder.append(" {").append(METHOD_BODY).append("}\n\n"); } } for (IType iType : type.getTypes()) { generateType(iType, builder, indent + indent); } builder.append(indent.substring(TAB.length())); builder.append("}\n"); }
From source file:com.ecfeed.ui.common.EclipseImplementationStatusResolver.java
License:Open Source License
@Override protected boolean enumValueImplemented(String qualifiedName, String value) { IType type = JavaModelAnalyser.getIType(qualifiedName); try {//from w w w.j a va 2 s .c o m if (type == null || type.isEnum() == false) { return false; } for (IField field : type.getFields()) { if (field.isEnumConstant() && field.getElementName().equals(value)) { return true; } } } catch (JavaModelException e) { SystemLogger.logCatch(e.getMessage()); } return false; }
From source file:com.google.inject.tools.ideplugin.eclipse.TypeUtil.java
License:Open Source License
/** * @param type/*from w w w . j av a2 s. c o m*/ * @param fieldName * @return true if fieldName is a member of type. Note that if type is java.lang.Enum * then this will always return true since we cannot know what fields the instance has (it could be any enum) */ public static boolean isEnumMember(final IType type, final String fieldName) { try { if (type == null || !isEnumType(type)) { throw new IllegalArgumentException("type must be non-null and isEnum()==true"); //$NON-NLS-1$ } if (fieldName == null) { throw new IllegalArgumentException("fieldName must be non-null"); //$NON-NLS-1$ } // if type is the java.lang.Enum, always true if (TypeConstants.TYPE_ENUM_BASE .equals(Signature.createTypeSignature(type.getFullyQualifiedName(), true))) { return true; } final IField field = type.getField(fieldName); if (field.exists() && field.isEnumConstant()) { return true; } } catch (JavaModelException jme) { // fall through and return false } return false; }
From source file:com.testify.ecfeed.ui.common.EclipseImplementationStatusResolver.java
License:Open Source License
@Override protected boolean enumValueImplemented(String qualifiedName, String value) { IType type = JavaModelAnalyser.getIType(qualifiedName); try {//from w ww . ja v a2 s . co m if (type == null || type.isEnum() == false) { return false; } for (IField field : type.getFields()) { if (field.isEnumConstant() && field.getElementName().equals(value)) { return true; } } } catch (JavaModelException e) { } return false; }
From source file:edu.brown.cs.bubbles.bedrock.BedrockEditor.java
License:Open Source License
/********************************************************************************/ void rename(String proj, String bid, String file, int start, int end, String name, String handle, String newname, boolean keeporig, boolean getters, boolean setters, boolean dohier, boolean qual, boolean refs, boolean dosimilar, boolean textocc, boolean doedit, String filespat, IvyXmlWriter xw) throws BedrockException { FileData fd = file_map.get(file);//from w w w . j av a2 s .com ICompilationUnit icu; if (doedit) { // icu = fd.getDefaultUnit(); icu = fd.getEditableUnit(bid); } else icu = fd.getEditableUnit(bid); IJavaElement[] elts; try { elts = icu.codeSelect(start, end - start); } catch (JavaModelException e) { throw new BedrockException("Bad location: " + e, e); } IJavaElement relt = null; for (IJavaElement ije : elts) { if (handle != null && !handle.equals(ije.getHandleIdentifier())) continue; if (name != null && !name.equals(ije.getElementName())) continue; relt = ije; break; } if (relt == null) throw new BedrockException("Item to rename not found"); String id = null; switch (relt.getElementType()) { case IJavaElement.COMPILATION_UNIT: id = IJavaRefactorings.RENAME_COMPILATION_UNIT; break; case IJavaElement.FIELD: IField ifld = (IField) relt; try { if (ifld.isEnumConstant()) id = IJavaRefactorings.RENAME_ENUM_CONSTANT; else id = IJavaRefactorings.RENAME_FIELD; } catch (JavaModelException e) { } break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: id = IJavaRefactorings.RENAME_PACKAGE; break; case IJavaElement.LOCAL_VARIABLE: id = IJavaRefactorings.RENAME_LOCAL_VARIABLE; break; case IJavaElement.TYPE: id = IJavaRefactorings.RENAME_TYPE; break; case IJavaElement.TYPE_PARAMETER: id = IJavaRefactorings.RENAME_TYPE_PARAMETER; break; case IJavaElement.METHOD: id = IJavaRefactorings.RENAME_METHOD; break; case IJavaElement.ANNOTATION: case IJavaElement.CLASS_FILE: case IJavaElement.IMPORT_CONTAINER: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.INITIALIZER: case IJavaElement.JAVA_MODEL: case IJavaElement.JAVA_PROJECT: case IJavaElement.PACKAGE_DECLARATION: break; } if (id == null) throw new BedrockException("Invalid element type to rename"); RenameJavaElementDescriptor renamer; RefactoringContribution rfc = RefactoringCore.getRefactoringContribution(id); if (rfc == null) { xw.begin("FAILURE"); xw.field("TYPE", "SETUP"); xw.textElement("ID", id); xw.end("FAILURE"); renamer = new RenameJavaElementDescriptor(id); } else { renamer = (RenameJavaElementDescriptor) rfc.createDescriptor(); } renamer.setJavaElement(relt); renamer.setKeepOriginal(keeporig); renamer.setNewName(newname); if (proj != null) renamer.setProject(proj); renamer.setRenameGetters(getters); renamer.setRenameSetters(setters); renamer.setUpdateHierarchy(dohier); renamer.setUpdateQualifiedNames(qual); renamer.setUpdateReferences(refs); renamer.setUpdateSimilarDeclarations(dosimilar); renamer.setUpdateTextualOccurrences(textocc); if (filespat != null) renamer.setFileNamePatterns(filespat); RefactoringStatus sts = renamer.validateDescriptor(); if (!sts.isOK()) { xw.begin("FAILURE"); xw.field("TYPE", "VALIDATE"); BedrockUtil.outputStatus(sts, xw); xw.end("FAILURE"); return; } try { Refactoring refactor = renamer.createRefactoring(sts); if (refactor == null) { xw.begin("FAILURE"); xw.field("TYPE", "CREATE"); xw.textElement("RENAMER", renamer.toString()); xw.textElement("REFACTOR", renamer.toString()); xw.textElement("STATUS", sts.toString()); xw.end("FAILURE"); return; } refactor.setValidationContext(null); // this seems to reset files from disk (mutliple times) sts = refactor.checkAllConditions(new NullProgressMonitor()); if (!sts.isOK()) { xw.begin("FAILURE"); xw.field("TYPE", "CHECK"); BedrockUtil.outputStatus(sts, xw); xw.end("FAILURE"); if (sts.hasFatalError()) return; } BedrockPlugin.logD("RENAME: Refactoring checked"); Change chng = refactor.createChange(new NullProgressMonitor()); BedrockPlugin.logD("RENAME: Refactoring change created"); if (doedit && chng != null) { chng.perform(new NullProgressMonitor()); } else if (chng != null) { xw.begin("EDITS"); BedrockUtil.outputChange(chng, xw); xw.end("EDITS"); } } catch (CoreException e) { throw new BedrockException("Problem creating refactoring: " + e, e); } BedrockPlugin.logD("RENAME RESULT = " + xw.toString()); }
From source file:edu.brown.cs.bubbles.bedrock.BedrockUtil.java
License:Open Source License
private static void outputNameDetails(IField fld, IvyXmlWriter xw) throws JavaModelException { String tnm = "Field"; if (fld.isEnumConstant()) tnm = "EnumConstant"; outputSymbol(fld, tnm, fld.getElementName(), fld.getKey(), xw); }
From source file:edu.uci.ics.sourcerer.extractor.ast.ClassFileExtractor.java
License:Open Source License
private void extractIField(IField field) { try {/*from www .j a v a 2s. c om*/ String fqn = fqnStack.peek() + "." + field.getElementName(); // Write the entity if (field.isEnumConstant()) { entityWriter.writeEnumConstant(fqn, field.getFlags(), path); } else { entityWriter.writeField(fqn, field.getFlags(), path); } // Write the inside relation relationWriter.writeInside(fqn, fqnStack.peek(), path); // Write the holds relation relationWriter.writeHolds(fqn, typeSignatureToFqn(field.getTypeSignature()), path); } catch (JavaModelException e) { logger.log(Level.SEVERE, "Error in extracting class file", e); } }
From source file:edu.uci.ics.sourcerer.tools.java.extractor.eclipse.ClassFileExtractor.java
License:Open Source License
private void extractIField(IField field) { try {//from ww w . j a v a2 s.com Location location = new Location(fqnStack.peek(), path, null, null); String fqn = fqnStack.peek() + "." + field.getElementName(); // Write the entity if (field.isEnumConstant()) { entityWriter.writeEntity(Entity.ENUM_CONSTANT, fqn, field.getFlags(), null, location); } else { entityWriter.writeEntity(Entity.FIELD, fqn, field.getFlags(), null, location); } // Write the contains relation relationWriter.writeRelation(Relation.CONTAINS, fqnStack.peek(), fqn, location); // Write the holds relation relationWriter.writeRelation(Relation.HOLDS, fqn, typeSignatureToFqn(field.getTypeSignature()), location); } catch (JavaModelException e) { logger.log(Level.SEVERE, "Error in extracting class file", e); } }
From source file:fr.ifpen.emptooling.reverse.JavaToEcore.java
License:Open Source License
/** * Process (resolve all literals) for the given {@link IType}. * /* w w w . j ava 2 s . c o m*/ * @param iType the given {@link IType} (a java Enum). * @param eEnum the associated {@link EEnum}. * @throws JavaModelException */ protected void processLiterals(IType iType, EEnum eEnum) throws JavaModelException { IField[] fields = iType.getFields(); int i = 0; for (IField iField : fields) { if (iField.isEnumConstant()) { EEnumLiteral literal = eFactory.createEEnumLiteral(); literal.setName(iField.getElementName()); literal.setValue(i++); eEnum.getELiterals().add(literal); } } }
From source file:mychangedetector.copyclasses.MyRenameLinkedMode.java
License:Open Source License
/** * Creates a rename descriptor./*from w w w .j av a 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)); descriptor.setKeepOriginal(refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_UPDATING)); } switch (elementType) { case IJavaElement.TYPE: // case IJavaElement.COMPILATION_UNIT: // TODO descriptor.setUpdateSimilarDeclarations( refactoringSettings.getBoolean(RenameRefactoringWizard.TYPE_UPDATE_SIMILAR_ELEMENTS)); int strategy; try { strategy = 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)); } 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); descriptor.setUpdateQualifiedNames(updateQualifiedNames); fShowPreview |= updateQualifiedNames; } } switch (elementType) { case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.TYPE: case IJavaElement.FIELD: boolean updateTextualOccurrences = refactoringSettings .getBoolean(RenameRefactoringWizard.UPDATE_TEXTUAL_MATCHES); descriptor.setUpdateTextualOccurrences(updateTextualOccurrences); fShowPreview |= updateTextualOccurrences; } switch (elementType) { case IJavaElement.FIELD: descriptor .setRenameGetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_GETTER)); descriptor .setRenameSetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_SETTER)); } return descriptor; }