public void populate(int count) { String[] firstNames = {"James", "Mary", "Joe", "Jane", "Andrew"}; String[] surNames = {"Smith", "Bloggs", "Doe"}; String[] numbers = {"200564758", "202283940", "206958473"}; for (int i = 0; i < count; i++) { contactList.add(new Contact()); contactList.edit(0, "firstName", firstNames[(int) (Math.random() * firstNames.length)]); contactList.edit(0, "surName", surNames[(int) (Math.random() * surNames.length)]); contactList.edit(0, "number", "01" + numbers[(int) (Math.random() * numbers.length)]); contactList.edit(0, "number", "07" + numbers[(int) (Math.random() * numbers.length)]); } }
public SIPHeader parse() throws ParseException { // past the header name and the colon. headerName(TokenTypes.CONTACT); ContactList retval = new ContactList(); while (true) { Contact contact = new Contact(); if (lexer.lookAhead(0) == '*') { this.lexer.match('*'); contact.setWildCardFlag(true); } else super.parse(contact); retval.add(contact); this.lexer.SPorHT(); if (lexer.lookAhead(0) == ',') { this.lexer.match(','); this.lexer.SPorHT(); } else if (lexer.lookAhead(0) == '\n') break; else throw createParseException("unexpected char"); } return retval; }
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Если не задан параметр action, то возвратить ошибку 400. if (request.getParameter("action") == null) { response.sendError(400, "Bad Request"); return; } // Отправить ответ клиенту в формате JSON response.setContentType("application/json;charset=UTF-8"); PrintWriter out = response.getWriter(); try { ContactList cl = new ContactList(); if (request.getParameter("action").equals("list")) { out.println(cl.list()); } if (request.getParameter("action").equals("add")) { Contact c = new Contact( null, request.getParameter("fio"), request.getParameter("phone"), request.getParameter("email")); out.println(cl.add(c)); } if (request.getParameter("action").equals("remove")) { out.println(cl.remove(request.getParameter("id"))); } if (request.getParameter("action").equals("createdb")) { out.println(cl.createDB()); } } finally { out.close(); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact_list); Contact temp = new Contact(); PhoneContact = ContactList.getsInstance(); ContentResolver cont = getContentResolver(); Cursor c = cont.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); ArrayList<String> contacts = new ArrayList<>(); // Storing ContactNumber ArrayList<String> name = new ArrayList<>(); // Storing ContactName if (c.moveToFirst()) { do { String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)); if (Integer.parseInt( c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { Cursor num = cont.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] {contactId}, null); while (num.moveToNext()) { String contactNum = num.getString(num.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); contacts.add(contactNum); String contactName = num.getString( num.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); name.add(contactName); } num.close(); } } while (c.moveToNext()); } for (int i = 0; i < contacts.size(); i++) { Log.d(tag, contacts.get(i)); Log.d(tag, name.get(i)); temp.setCNum(contacts.get(i)); temp.setCName(name.get(i)); PhoneContact.add(temp); } ListView listView = (ListView) findViewById(R.id.Contact_list_view); mAdapter = new ContactAdapter(PhoneContact); listView.setAdapter(mAdapter); listView.setOnScrollListener( new AbsListView.OnScrollListener() { int previousFirstItem = 0; @Override public void onScrollStateChanged(AbsListView view, int scrollState) {} @Override public void onScroll( AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem > previousFirstItem) { getSupportActionBar().hide(); } else if (firstVisibleItem < previousFirstItem) { getSupportActionBar().show(); } previousFirstItem = firstVisibleItem; } }); listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent i = new Intent(ContactListActivity.this, ContactViewActivity.class); i.putExtra(ContactViewActivity.EXTRA, position); startActivity(i); } }); c.close(); }
/** Called by the sax parser when the start of an element is encountered. */ public void startElement(String nameSpaceURI, String local, String name, Attributes attrs) throws SAXException { try { Debug.println("processing " + name); if (name.compareTo(TagNames.CALLFLOW) == 0) { callFlow = new CallFlow(); callFlow.instantiateOn = attrs.getValue(Attr.instantiateOn); callFlow.description = attrs.getValue(Attr.description); } else if (name.compareTo(TagNames.AGENT) == 0) { Agent agent = new Agent(); agent.agentId = attrs.getValue(Attr.agentId); agent.userName = attrs.getValue(Attr.userName); agent.requestURI = attrs.getValue(Attr.requestURI); agent.host = attrs.getValue(Attr.host); agent.contactPort = attrs.getValue(Attr.contactPort); agent.contactHost = attrs.getValue(Attr.contactHost); addAgent(agent); } else if (name.compareTo(TagNames.EXPECT) == 0) { // Make sure there are no unexpected attributes. for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (attrname.equals(Attr.enablingEvent) || attrname.equals(Attr.triggerMessage) || attrname.equals(Attr.generatedEvent) || attrname.equals(Attr.nodeId) || attrname.equals(Attr.onTrigger) || attrname.equals(Attr.onCompletion)) continue; else throw new SAXException( "Unkown attribute in expect: nodeId = " + attrs.getValue(Attr.nodeId) + " attribute name = " + attrname); } String enablingEvent = attrs.getValue(Attr.enablingEvent); String triggerMessage = attrs.getValue(Attr.triggerMessage); String generatedEvent = attrs.getValue(Attr.generatedEvent); String nodeId = attrs.getValue(Attr.nodeId); currentExpectNode = new Expect(callFlow, enablingEvent, generatedEvent, triggerMessage); String onTrigger = attrs.getValue(Attr.onTrigger); String onCompletion = attrs.getValue(Attr.onCompletion); currentExpectNode.onTrigger = onTrigger; currentExpectNode.onCompletion = onCompletion; currentExpectNode.nodeId = nodeId; } else if (name.compareTo(TagNames.SIP_REQUEST) == 0) { if (this.messageTemplateContext) { // This is a SIPRequest template node. for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (!attrs.getLocalName(i).equals(Attr.templateId)) throw new SAXException( "Unkown attribute in SIP_REQUEST node " + " attribute name = " + attrname); } messageTemplate = new SIPRequest(); id = attrs.getValue(Attr.templateId); jythonCode = null; } } else if (name.compareTo(TagNames.SIP_RESPONSE) == 0) { if (this.messageTemplateContext) { messageTemplate = new SIPResponse(); jythonCode = null; for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (!attrs.getLocalName(i).equals(Attr.templateId)) throw new SAXException( "Unkown attribute in SIP_REQUEST node " + " attribute name = " + attrname); } id = attrs.getValue(Attr.templateId); } } else if (name.compareTo(TagNames.STATUS_LINE) == 0) { String scode = attrs.getValue(Attr.statusCode); if (messageTemplateContext) { StatusLine statusLine = new StatusLine(); try { int statusCode = Integer.parseInt(scode); statusLine.setStatusCode(statusCode); } catch (NumberFormatException ex) { throw new SAXException(ex.getMessage()); } SIPResponse response = (SIPResponse) this.messageTemplate; response.setStatusLine(statusLine); } else { int statusCode = Integer.parseInt(scode); generatedMessage.addStatusLine(statusCode); } } else if (name.compareTo(TagNames.REQUEST_LINE) == 0) { String method = attrs.getValue(Attr.method); Debug.println("tagname = " + TagNames.REQUEST_LINE); Debug.println("messageTemplateContext = " + messageTemplateContext); if (messageTemplateContext) { for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (attrs.getLocalName(i).equals(Attr.requestURI) || attrs.getLocalName(i).equals(Attr.method)) continue; else throw new SAXException( "Unkown attribute in REQUEST_LINE node " + " attribute name = " + attrname); } requestLine = new RequestLine(); requestLine.setMethod(method); String requestURI = attrs.getValue(Attr.requestURI); StringMsgParser smp = new StringMsgParser(); if (requestURI != null) { try { URI uri = smp.parseSIPUrl(requestURI); requestLine.setUri(uri); } catch (SIPParseException e) { throw new SAXException("Bad URL " + requestURI); } } SIPRequest request = (SIPRequest) messageTemplate; request.setRequestLine(requestLine); } else { for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (attrs.getLocalName(i).equals(Attr.method) || attrs.getLocalName(i).equals(Attr.templateId) || attrs.getLocalName(i).equals(Attr.agentId)) continue; else throw new SAXException( "Unkown attribute in REQUEST_LINE node " + " attribute name = " + attrname); } String requestURI = attrs.getValue(Attr.requestURI); if (requestURI == null) { String agentId = attrs.getValue(Attr.agentId); if (agentId != null) { Agent agent = getAgent(agentId); if (agent == null) throw new SAXException("Missing requestURI or agent attribute"); requestURI = agent.requestURI; } } generatedMessage.addRequestLine(method, requestURI); } } else if (name.compareTo(TagNames.FROM) == 0) { for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (attrs.getLocalName(i).equals(Attr.displayName) || attrs.getLocalName(i).equals(Attr.userName) || attrs.getLocalName(i).equals(Attr.host) || attrs.getLocalName(i).equals(Attr.agentId)) continue; else throw new SAXException( "Unkown attribute in FROM node " + " attribute name = " + attrname); } String displayName = attrs.getValue(Attr.displayName); String userName = attrs.getValue(Attr.userName); String hostName = attrs.getValue(Attr.host); String agentId = attrs.getValue(Attr.agentId); if (agentId != null) { Agent agent = getAgent(agentId); if (agent == null) throw new SAXException("agent not found " + agentId); if (displayName == null) displayName = agent.displayName; if (userName == null) userName = agent.userName; if (hostName == null) hostName = agent.host; } if (this.messageTemplateContext) { From from = new From(); Address address = new Address(); address.setDisplayName(displayName); URI uri = new URI(); Host host = new Host(); host.setHostname(hostName); uri.setHost(host); uri.setUser(userName); address.setAddrSpec(uri); from.setAddress(address); try { messageTemplate.attachHeader(from, false); } catch (SIPDuplicateHeaderException ex) { throw new SAXException(ex.getMessage()); } } else { generatedMessage.addFromHeader(displayName, userName, hostName); } } else if (name.compareTo(TagNames.TO) == 0) { for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (attrs.getLocalName(i).equals(Attr.templateId) || attrs.getLocalName(i).equals(Attr.host) || attrs.getLocalName(i).equals(Attr.agentId) || attrs.getLocalName(i).equals(Attr.userName)) continue; else throw new SAXException( "Unkown attribute in FROM node " + " attribute name = " + attrname); } String displayName = attrs.getValue(Attr.displayName); String userName = attrs.getValue(Attr.userName); String hostName = attrs.getValue(Attr.host); String agentId = attrs.getValue(Attr.agentId); if (agentId != null) { Agent agent = getAgent(agentId); if (agent == null) throw new SAXException("agent not found " + agentId); if (displayName == null) displayName = agent.displayName; if (userName == null) userName = agent.userName; if (hostName == null) hostName = agent.host; } if (this.messageTemplateContext) { To to = new To(); Address address = new Address(); address.setDisplayName(displayName); URI uri = new URI(); Host host = new Host(); host.setHostname(hostName); uri.setHost(host); uri.setUser(userName); address.setAddrSpec(uri); to.setAddress(address); try { messageTemplate.attachHeader(to, false); } catch (SIPDuplicateHeaderException ex) { throw new SAXException(ex.getMessage()); } } else { generatedMessage.addToHeader(displayName, userName, hostName); } } else if (name.compareTo(TagNames.CALLID) == 0) { String lid = attrs.getValue(Attr.localId); String host = attrs.getValue(Attr.host); if (this.messageTemplateContext) { CallID cid = new CallID(); CallIdentifier cidf = new CallIdentifier(lid, host); cid.setCallIdentifier(cidf); } else { generatedMessage.addCallIdHeader(); } } else if (name.compareTo(TagNames.CONTACT) == 0) { for (int i = 0; i < attrs.getLength(); i++) { String attrname = attrs.getLocalName(i); if (attrs.getLocalName(i).equals(Attr.displayName) || attrs.getLocalName(i).equals(Attr.userName) || attrs.getLocalName(i).equals(Attr.action) || attrs.getLocalName(i).equals(Attr.contactHost) || attrs.getLocalName(i).equals(Attr.contactPort) || attrs.getLocalName(i).equals(Attr.agentId) || attrs.getLocalName(i).equals(Attr.expires)) continue; else throw new SAXException( "Unkown attribute in CONTACT node " + " attribute name = " + attrname); } String displayName = attrs.getValue(Attr.displayName); String userName = attrs.getValue(Attr.userName); String hostName = attrs.getValue(Attr.contactHost); String portString = attrs.getValue(Attr.contactPort); String expiryTimeString = attrs.getValue(Attr.expires); String action = attrs.getValue(Attr.action); String agentId = attrs.getValue(Attr.agentId); if (action == null) action = "proxy"; if (agentId != null) { Agent agent = getAgent(agentId); if (displayName == null) displayName = agent.displayName; if (userName == null) userName = agent.userName; if (hostName == null) hostName = agent.contactHost; if (portString == null) portString = agent.contactPort; } if (this.messageTemplateContext) { // Generating a message template for the expires header. ContactList clist = new ContactList(); Contact contact = new Contact(); clist.add(contact); URI uri = new URI(); Host host = new Host(); host.setHostname(hostName); uri.setHost(host); uri.setUser(userName); if (portString != null) { int port = new Integer(portString).intValue(); uri.setPort(port); } Address address = new Address(); address.setAddrSpec(uri); contact.setAddress(address); if (expiryTimeString != null) { long expiryTimeSec = new Long(expiryTimeString).longValue(); contact.setExpires(expiryTimeSec); } messageTemplate.attachHeader(clist, false); } else { int port = 5060; if (portString != null) port = new Integer(portString).intValue(); long expiryTimeSec = 3600; if (expiryTimeString != null) { expiryTimeSec = new Long(expiryTimeString).longValue(); } if (userName == null) throw new Exception("Missing attribute userName"); if (action == null) action = Attr.proxy; String uri; if (hostName == null) { uri = SIPKeywords.SIP + Separators.COLON + userName + Separators.AT + EventEngine.theStack.getHostAddress() + Separators.COLON + EventEngine.theStack.getDefaultPort() + Separators.SEMICOLON + SIPKeywords.TRANSPORT + Separators.EQUALS + EventEngine.theStack.getDefaultTransport(); } else uri = SIPKeywords.SIP + Separators.COLON + userName + Separators.AT + hostName + ":" + port; generatedMessage.addContactHeader(displayName, uri, expiryTimeSec, action); } } else if (name.compareTo(TagNames.GENERATE) == 0) { generateContext = true; if (currentExpectNode == null) { throw new SAXException("Bad element nesting."); } String id = attrs.getValue(Attr.messageId); String retransmit = attrs.getValue(Attr.retransmit); String delayString = attrs.getValue(Attr.delay); int delay = 0; if (delayString != null) { try { delay = Integer.parseInt(delayString); } catch (NumberFormatException ex) { throw new SAXException("Bad integer value " + delayString); } } generatedMessage = new GeneratedMessage(id, callFlow, currentExpectNode, retransmit); generatedMessage.delay = delay; currentExpectNode.addGeneratedMessage(generatedMessage); } else if (name.compareTo(TagNames.MESSAGE_TEMPLATES) == 0) { messageTemplateContext = true; } else if (name.compareTo(TagNames.JYTHON_CODE) == 0) { this.jythonCode = null; } else if (name.compareTo(TagNames.STATE_MACHINE) == 0) { } else if (name.compareTo(TagNames.AGENTS) == 0) { } else { throw new SAXException("Unkown tag " + name); } } catch (Exception ex) { ex.printStackTrace(); ex.fillInStackTrace(); throw new SAXException(ex.getMessage()); } }