package im.actor.generator.scheme; import java.util.ArrayList; import java.util.List; /** * Created by ex3ndr on 14.11.14. */ public class SchemeSection { private String name; private String pkg; private List<SchemeRecord> records = new ArrayList<SchemeRecord>(); private List<String> docs = new ArrayList<String>(); public SchemeSection(String name, String pkg) { this.name = name; this.pkg = pkg; } public String getPkg() { return pkg; } public String getName() { return name; } public List<SchemeRecord> getRecords() { return records; } public List<String> getDocs() { return docs; } public String getUniformedDocs() { String res = ""; for (String d : docs) { res += d + " "; } return res; } public List<SchemeRpc> getAllRpc() { ArrayList<SchemeRpc> res = new ArrayList<SchemeRpc>(); for (SchemeRecord record : records) { if (record instanceof SchemeRpc) { res.add((SchemeRpc) record); } } return res; } public List<SchemeTrait> getAllTraits() { ArrayList<SchemeTrait> res = new ArrayList<SchemeTrait>(); for (SchemeRecord record : records) { if (record instanceof SchemeTrait) { res.add((SchemeTrait) record); } } return res; } public List<SchemeUpdate> getAllUpdates() { ArrayList<SchemeUpdate> res = new ArrayList<SchemeUpdate>(); for (SchemeRecord record : records) { if (record instanceof SchemeUpdate) { res.add((SchemeUpdate) record); } } return res; } public List<SchemeUpdateBox> getAllUpdateBoxes() { ArrayList<SchemeUpdateBox> res = new ArrayList<SchemeUpdateBox>(); for (SchemeRecord record : records) { if (record instanceof SchemeUpdateBox) { res.add((SchemeUpdateBox) record); } } return res; } public List<SchemeStruct> getAllStructs() { ArrayList<SchemeStruct> res = new ArrayList<SchemeStruct>(); for (SchemeRecord record : records) { if (record instanceof SchemeStruct) { res.add((SchemeStruct) record); } } return res; } public List<SchemeEnum> getAllEnums() { ArrayList<SchemeEnum> res = new ArrayList<SchemeEnum>(); for (SchemeRecord record : records) { if (record instanceof SchemeEnum) { res.add((SchemeEnum) record); } } return res; } public List<SchemeBaseResponse> getAllResponses() { ArrayList<SchemeBaseResponse> res = new ArrayList<SchemeBaseResponse>(); for (SchemeRecord record : records) { if (record instanceof SchemeResponse) { res.add((SchemeResponse) record); } else if (record instanceof SchemeRpc) { SchemeRpc.AbsResponse response = ((SchemeRpc) record).getResponse(); if (response instanceof SchemeRpc.AnonymousResponse) { res.add(((SchemeRpc.AnonymousResponse) response).getResponse()); } } } return res; } @Override public String toString() { return ">" + name; } }