Skip to content

Commit

Permalink
fix(metamodel): mark unsettable setters of name, modifier and label (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
pvojtechovsky authored and monperrus committed Jun 9, 2018
1 parent a849f36 commit 0eeb6e8
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ public interface CtAnonymousExecutable extends CtExecutable<Void>, CtTypeMember
@Override
CtAnonymousExecutable clone();

@Override
@UnsettableProperty
<C extends CtNamedElement> C setSimpleName(String simpleName);

@Override
@UnsettableProperty
<T extends CtExecutable<Void>> T setThrownTypes(Set<CtTypeReference<? extends Throwable>> thrownTypes);
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/spoon/reflect/declaration/CtClass.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import spoon.reflect.code.CtStatement;
import spoon.reflect.reference.CtTypeReference;
import spoon.support.DerivedProperty;
import spoon.support.UnsettableProperty;
import spoon.reflect.annotations.PropertyGetter;
import spoon.reflect.annotations.PropertySetter;

Expand Down Expand Up @@ -132,4 +133,8 @@ public interface CtClass<T extends Object> extends CtType<T>, CtStatement {
* will be garbage-collected with the instance.
*/
T newInstance();

@Override
@UnsettableProperty
<C extends CtStatement> C setLabel(String label);
}
4 changes: 4 additions & 0 deletions src/main/java/spoon/reflect/declaration/CtConstructor.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,8 @@ public interface CtConstructor<T> extends CtExecutable<T>, CtTypeMember, CtForma
@Override
@UnsettableProperty
<C extends CtTypedElement> C setType(CtTypeReference<T> type);

@Override
@UnsettableProperty
<C extends CtNamedElement> C setSimpleName(String simpleName);
}
3 changes: 3 additions & 0 deletions src/main/java/spoon/reflect/declaration/CtTypeParameter.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,7 @@ public interface CtTypeParameter extends CtType<Object> {
@UnsettableProperty
<F, C extends CtType<Object>> C addFieldAtTop(CtField<F> field);

@Override
@UnsettableProperty
<T extends CtModifiable> T setModifiers(Set<ModifierKind> modifiers);
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,16 @@
*/
package spoon.reflect.reference;

import spoon.support.UnsettableProperty;

/**
* Represents a wildcard in generic type annotations, i.e. the "?" (e.g. the "?" in Collection&lt;?&gt; or Collection&lt;? extends List&gt;).
*/
public interface CtWildcardReference extends CtTypeParameterReference {
@Override
CtWildcardReference clone();

@Override
@UnsettableProperty
<C extends CtReference> C setSimpleName(String simpleName);
}
4 changes: 4 additions & 0 deletions src/test/java/spoon/generating/CloneVisitorGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,10 @@ private List<CtMethod<?>> getCtMethodThrowUnsupportedOperation(CtMethod<?> metho
* Check if the candidate method throw an UnsupportedOperationException.
*/
private boolean avoidThrowUnsupportedOperationException(CtMethod<?> candidate) {
if (candidate.getBody() == null) {
//abstract method of interface
return true;
}
if (candidate.getBody().getStatements().size() != 1) {
return true;
}
Expand Down

0 comments on commit 0eeb6e8

Please sign in to comment.