package com.ladjzero.hipda; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; /** * Created by chenzhuo on 15-9-19. */ public class Forum { private int fid; private String name; public boolean isSecurity() { return security; } public void setSecurity(boolean security) { this.security = security; } private boolean security; public String getAlias() { return alias; } public void setAlias(String alias) { this.alias = alias; } private String alias; private ArrayList<Forum> children; private ArrayList<Type> types; public Type getCurrentType() { return currentType; } public void setCurrentType(Type currentType) { this.currentType = currentType; } private Type currentType; public static Forum findById(List<Forum> forums, int fid) { List<Forum> ret = findByIds(forums, new ArrayList<>(Arrays.asList(fid))); return ret.size() == 0 ? null : ret.get(0); } public static List<Forum> findByIds(List<Forum> forums, Collection<Integer> fids) { ArrayList<Forum> ret = new ArrayList<>(); List<Forum> forums2 = flatten(forums); for (int fid : fids) { Forum f = null; for (Forum _f : forums2) { if (_f.getFid() == fid) { f = _f; break; } } if (f != null) { ret.add(f); } } return ret; } public static List<Forum> flatten(List<Forum> forums) { List<Forum> ret = new ArrayList<>(); for (Forum f : forums) { ret.add(f); List<Forum> children = f.getChildren(); if (children != null) { ret.addAll(flatten(children)); } } return ret; } public int getFid() { return fid; } public Forum setFid(int fid) { this.fid = fid; return this; } public String getName() { return name; } public Forum setName(String name) { this.name = name; return this; } public ArrayList<Forum> getChildren() { return children; } public void setChildren(ArrayList<Forum> children) { this.children = children; } public ArrayList<Type> getTypes() { return types; } public void setTypes(ArrayList<Type> types) { this.types = types; } @Override public String toString() { if (alias == null) { return name; } else { return alias; } } public static class Type { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return name; } } }