spoon.support.reflect.code.CtAssignmentImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spoon-core Show documentation
Show all versions of spoon-core Show documentation
Spoon is a tool for meta-programming, analysis and transformation of Java programs.
The newest version!
/*
* Spoon - http://spoon.gforge.inria.fr/
* Copyright (C) 2006 INRIA Futurs
*
* This software is governed by the CeCILL-C License under French law and
* abiding by the rules of distribution of free software. You can use, modify
* and/or redistribute the software under the terms of the CeCILL-C license as
* circulated by CEA, CNRS and INRIA at http://www.cecill.info.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL-C License for more details.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL-C license and that you accept its terms.
*/
package spoon.support.reflect.code;
import java.util.ArrayList;
import java.util.List;
import spoon.reflect.code.CtAssignment;
import spoon.reflect.code.CtCodeElement;
import spoon.reflect.code.CtExpression;
import spoon.reflect.code.CtRHSReceiver;
import spoon.reflect.declaration.CtElement;
import spoon.reflect.declaration.CtType;
import spoon.reflect.declaration.CtTypedElement;
import spoon.reflect.reference.CtTypeReference;
import spoon.reflect.visitor.CtVisitor;
import spoon.support.reflect.declaration.CtElementImpl;
import static spoon.reflect.ModelElementContainerDefaultCapacities.CASTS_CONTAINER_DEFAULT_CAPACITY;
public class CtAssignmentImpl extends CtStatementImpl implements CtAssignment {
private static final long serialVersionUID = 1L;
CtExpression assigned;
CtExpression assignment;
CtTypeReference type;
List> typeCasts = emptyList();
@Override
public void accept(CtVisitor visitor) {
visitor.visitCtAssignment(this);
}
@Override
public CtExpression getAssigned() {
return assigned;
}
@Override
public CtExpression getAssignment() {
return assignment;
}
@Override
public CtTypeReference getType() {
return type;
}
@Override
public List> getTypeCasts() {
return typeCasts;
}
@Override
public > C setAssigned(CtExpression assigned) {
assigned.setParent(this);
this.assigned = assigned;
return (C) this;
}
@Override
public > C setAssignment(CtExpression assignment) {
assignment.setParent(this);
this.assignment = assignment;
return (C) this;
}
@Override
public C setType(CtTypeReference type) {
this.type = type;
return (C) this;
}
@Override
public > C setTypeCasts(List> casts) {
this.typeCasts = casts;
return (C) this;
}
@Override
public > C addTypeCast(CtTypeReference> type) {
if (typeCasts == CtElementImpl.>emptyList()) {
typeCasts = new ArrayList>(CASTS_CONTAINER_DEFAULT_CAPACITY);
}
typeCasts.add(type);
return (C) this;
}
@Override
public void replace(CtExpression element) {
replace((CtElement) element);
}
@Override
public T S() {
return null;
}
public CtCodeElement getSubstitution(CtType> targetType) {
return getFactory().Core().clone(this);
}
}