
us.codecraft.xsoup.bridge.DefaultXElements Maven / Gradle / Ivy
package us.codecraft.xsoup.bridge;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.virjar.sipsoup.model.SIPNode;
import us.codecraft.xsoup.XElement;
import us.codecraft.xsoup.XElements;
/**
* Created by virjar on 17/6/19.
*/
public class DefaultXElements extends ArrayList implements XElements {
private List sipNodes;
public DefaultXElements(List sipNodes) {
this.sipNodes = sipNodes;
initList();
}
private void initList() {
for (SIPNode element : sipNodes) {
this.add(new DefaultXElement(element));
}
}
@Override
public String get() {
if (size() < 1) {
return null;
} else {
return get(0).get();
}
}
@Override
public List list() {
List resultStrings = new ArrayList();
for (XElement xElement : this) {
String text = xElement.get();
if (text != null) {
resultStrings.add(text);
}
}
return resultStrings;
}
@Override
public String toString() {
return get();
}
@Override
public Elements getElements() {
return new Elements(Lists.newLinkedList(Iterables.transform(Iterables.filter(sipNodes, new Predicate() {
@Override
public boolean apply(SIPNode input) {
return !input.isText();
}
}), new Function() {
@Override
public Element apply(SIPNode input) {
return input.getElement();
}
})));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy