package com.github.sommeri.less4j.core.ast;
import java.util.ArrayList;
import java.util.List;
import com.github.sommeri.less4j.core.ast.annotations.NotAstProperty;
import com.github.sommeri.less4j.core.parser.HiddenTokenAwareTree;
import com.github.sommeri.less4j.utils.ArraysUtils;
public class Media extends Directive {
private List<MediaQuery> mediums;
private GeneralBody body;
public Media(HiddenTokenAwareTree token) {
super(token);
}
public void addMediaQuery(MediaQuery medium) {
if (mediums==null) {
mediums = new ArrayList<MediaQuery>();
}
mediums.add(medium);
}
public List<MediaQuery> getMediums() {
return mediums;
}
public void setMediums(List<MediaQuery> mediums) {
this.mediums = mediums;
}
public void replaceMediaQueries(List<MediaQuery> result) {
for (MediaQuery oldMediums : mediums) {
oldMediums.setParent(null);
}
mediums = new ArrayList<MediaQuery>();
mediums.addAll(result);
}
public boolean bubleUpWithoutChanges() {
return false;
}
@Override
@NotAstProperty
public List<ASTCssNode> getChilds() {
List<ASTCssNode> childs = new ArrayList<ASTCssNode>();
childs.addAll(mediums);
childs.add(body);
return childs;
}
@Override
public ASTCssNodeType getType() {
return ASTCssNodeType.MEDIA;
}
@Override
public Media clone() {
Media result = (Media) super.clone();
result.mediums = ArraysUtils.deeplyClonedList(mediums);
result.body = body==null?null:body.clone();
result.configureParentToAllChilds();
return result;
}
@Override
public void setBody(GeneralBody body) {
this.body = body;
}
@Override
public GeneralBody getBody() {
return body;
}
}