@Override public boolean canBeAssignedTo(ResolvedReferenceTypeDeclaration other) { String otherName = other.getQualifiedName(); // Enums cannot be extended if (otherName.equals(this.getQualifiedName())) { return true; } if (otherName.equals(Enum.class.getCanonicalName())) { return true; } // Enum implements Comparable and Serializable if (otherName.equals(Comparable.class.getCanonicalName())) { return true; } if (otherName.equals(Serializable.class.getCanonicalName())) { return true; } if (otherName.equals(Object.class.getCanonicalName())) { return true; } return false; }
private ResolvedReferenceTypeDeclaration getDeclaration() { return new JavaParserEnumDeclaration(this.wrappedNode, typeSolver); } }
@Override public Optional<MethodUsage> solveMethodAsUsage(String name, List<ResolvedType> argumentTypes, Context invokationContext, List<ResolvedType> typeParameters) { return getContext().solveMethodAsUsage(name, argumentTypes); }
@Override public com.github.javaparser.ast.Modifier.Keyword accessSpecifier() { return enumDeclaration.getWrappedNode().getAccessSpecifier(); }
@Test(expected = UnsupportedOperationException.class) public void testAsInterface() { JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); modifier.asInterface(); }
@Test(expected = UnsupportedOperationException.class) public void testAsClass() { JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); modifier.asClass(); }
@Test public void testAsEnum() { JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); assertEquals(modifier, modifier.asEnum()); }
@Override public AccessSpecifier accessSpecifier() { return Helper.toAccessLevel(enumDeclaration.getWrappedNode().getModifiers()); }
private ResolvedReferenceTypeDeclaration getDeclaration() { return new JavaParserEnumDeclaration(this.wrappedNode, typeSolver); } }
@Deprecated public Optional<MethodUsage> solveMethodAsUsage(String name, List<ResolvedType> parameterTypes, TypeSolver typeSolver, Context invokationContext, List<ResolvedType> typeParameterValues) { if (name.equals("values") && parameterTypes.isEmpty()) { return Optional.of(new ValuesMethod(this, typeSolver).getUsage(null)); } // TODO add methods inherited from Enum return getContext().solveMethodAsUsage(name, parameterTypes, typeSolver); }
@Override public boolean canBeAssignedTo(ResolvedReferenceTypeDeclaration other) { // Enums cannot be extended if (other.getQualifiedName().equals(this.getQualifiedName())) { return true; } if (other.getQualifiedName().equals(Enum.class.getCanonicalName())) { return true; } // Enum implements Comparable and Serializable if (other.getQualifiedName().equals(Comparable.class.getCanonicalName())) { return true; } if (other.getQualifiedName().equals(Serializable.class.getCanonicalName())) { return true; } if (other.getQualifiedName().equals(Object.class.getCanonicalName())) { return true; } return false; }
@Override public AccessSpecifier accessSpecifier() { return Helper.toAccessLevel(enumDeclaration.getWrappedNode().getModifiers()); }
private ResolvedReferenceTypeDeclaration getDeclaration() { return new JavaParserEnumDeclaration(this.wrappedNode, typeSolver); } }
@Deprecated public Optional<MethodUsage> solveMethodAsUsage(String name, List<ResolvedType> parameterTypes, TypeSolver typeSolver, Context invokationContext, List<ResolvedType> typeParameterValues) { if (name.equals("values") && parameterTypes.isEmpty()) { return Optional.of(new ValuesMethod(this, typeSolver).getUsage(null)); } // TODO add methods inherited from Enum return getContext().solveMethodAsUsage(name, parameterTypes, typeSolver); }
@Override public boolean canBeAssignedTo(ResolvedReferenceTypeDeclaration other) { // Enums cannot be extended if (other.getQualifiedName().equals(this.getQualifiedName())) { return true; } if (other.getQualifiedName().equals(Enum.class.getCanonicalName())) { return true; } // Enum implements Comparable and Serializable if (other.getQualifiedName().equals(Comparable.class.getCanonicalName())) { return true; } if (other.getQualifiedName().equals(Serializable.class.getCanonicalName())) { return true; } if (other.getQualifiedName().equals(Object.class.getCanonicalName())) { return true; } return false; }
@Override public ResolvedType getType() { return new ReferenceTypeImpl(new JavaParserEnumDeclaration((EnumDeclaration) getParentNode(wrappedNode), typeSolver), typeSolver); }
@Override public SymbolReference<ResolvedMethodDeclaration> solveMethod(String name, List<ResolvedType> argumentsTypes, boolean staticOnly) { if (name.equals("values") && argumentsTypes.isEmpty()) { return SymbolReference.solved(new JavaParserEnumDeclaration.ValuesMethod(this, typeSolver)); } return getContext().solveMethod(name, argumentsTypes, staticOnly); }
@Test public void testGetQualifiedName() { JavaParserEnumDeclaration modifier = (JavaParserEnumDeclaration) typeSolver.solveType("com.github.javaparser.ast.Modifier"); assertEquals("com.github.javaparser.ast.Modifier", modifier.getQualifiedName()); }
@Override public ResolvedType getType() { return new ReferenceTypeImpl(new JavaParserEnumDeclaration((EnumDeclaration) getParentNode(wrappedNode), typeSolver), typeSolver); }
return SymbolReference.solved(new JavaParserEnumDeclaration.ValuesMethod((JavaParserEnumDeclaration) typeDeclaration, typeSolver)); Context ctx = ((JavaParserEnumDeclaration) typeDeclaration).getContext(); return ctx.solveMethod(name, argumentsTypes, staticOnly, typeSolver);