- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 19 Oct 2009 16:20:20 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/response/impl In directory hutz:/tmp/cvs-serv17630/src/org/w3c/unicorn/response/impl Modified Files: DefaultResponseXBeans.java OldResponseXBeans.java Log Message: implements a private Iterable<Message> class to iterate over the messages based on a level and/or uri constraint Index: DefaultResponseXBeans.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/response/impl/DefaultResponseXBeans.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- DefaultResponseXBeans.java 19 Oct 2009 12:42:07 -0000 1.2 +++ DefaultResponseXBeans.java 19 Oct 2009 16:20:18 -0000 1.3 @@ -8,7 +8,10 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Date; +import java.util.Hashtable; +import java.util.Iterator; import java.util.List; +import java.util.Map; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlObject; @@ -30,9 +33,9 @@ private Observationresponse or; private List<Message> messages = new ArrayList<Message>(); - private List<Message> errorMessages = new ArrayList<Message>(); - private List<Message> warningMessages = new ArrayList<Message>(); - private List<Message> infoMessages = new ArrayList<Message>(); + private int errorCount = 0; + private int warningCount = 0; + private int infoCount = 0; private List<Group> groups = new ArrayList<Group>(); @@ -48,17 +51,8 @@ try { ord = ObservationresponseDocument.Factory.parse(is, new XmlOptions().setCharacterEncoding(charset)); or = ord.getObservationresponse(); - if (!or.validate()) throw new UnicornException(new org.w3c.unicorn.util.Message(2, "$message_response_validation_error")); - - System.out.println("Response ----------------------"); - System.out.println("Date: " + getDate()); - System.out.println("URI: " + getURI()); - System.out.println("Status: " + getStatus()); - System.out.println("Rating: " + getRating()); - System.out.println("-------------------------------"); - } catch (XmlException e) { if (e.getMessage().contains("is not a valid observationresponse")) throw new UnicornException(new org.w3c.unicorn.util.Message(org.w3c.unicorn.util.Message.ERROR, "$message_observer_invalid_response_schema")); @@ -84,13 +78,13 @@ m.setGroupName(list.getGroup()); switch (m.getType()) { case Message.ERROR: - errorMessages.add(m); + errorCount++; break; case Message.WARNING: - warningMessages.add(m); + warningCount++; break; case Message.INFO: - infoMessages.add(m); + infoCount++; break; } messages.add(m); @@ -105,17 +99,18 @@ switch (m.getType()) { case Message.ERROR: - errorMessages.add(m); + errorCount++; break; case Message.WARNING: - warningMessages.add(m); + warningCount++; break; case Message.INFO: - infoMessages.add(m); + infoCount++; break; } messages.add(m); } + } public Date getDate() { @@ -142,32 +137,32 @@ return null; } - public List<Message> getMessages() { + public Iterable<Message> getMessages() { return messages; } - public List<Message> getErrorMessages() { - return errorMessages; + public Iterable<Message> getErrorMessages() { + return getMessages(null, Message.ERROR); } - public List<Message> getInfoMessages() { - return infoMessages; + public Iterable<Message> getInfoMessages() { + return getMessages(null, Message.INFO); } - public List<Message> getWarningMessages() { - return warningMessages; + public Iterable<Message> getWarningMessages() { + return getMessages(null, Message.WARNING); } public int getErrorCount() { - return errorMessages.size(); + return errorCount; } public int getWarningCount() { - return warningMessages.size(); + return warningCount; } public int getInfoCount() { - return infoMessages.size(); + return infoCount; } public List<Group> getGroups() { @@ -257,4 +252,80 @@ return false; } + public Iterable<Message> getMessages(String uri, int type) { + return new MessageIterable(uri, type); + } + + private class MessageIterable implements Iterable<Message> { + + private int index = 0; + private Integer type; + private String uri; + + public MessageIterable(String uri, Integer type) { + this.uri = uri; + this.type = type; + } + + public Iterator<Message> iterator() { + return new Iterator<Message>() { + public boolean hasNext() { + int x = index; + while (x < messages.size()) { + if ((uri == null || messages.get(x).getURI().equals(uri)) && + (type == null || messages.get(x).getType() == type)) + return true; + x++; + } + return false; + } + + public Message next() { + while (index < messages.size()) { + if ((uri == null || messages.get(index).getURI().equals(uri)) && + (type == null || messages.get(index).getType() == type)) { + index++; + return messages.get(index - 1); + } + index++; + } + return null; + } + + public void remove() { + return; + } + }; + } + } + + public Iterable<Message> getErrorMessages(String uri) { + return getMessages(uri, Message.ERROR); + } + + public Iterable<Message> getInfoMessages(String uri) { + return getMessages(uri, Message.INFO); + } + + public Iterable<Message> getMessages(String uri, Integer type) { + return new MessageIterable(uri, type); + } + + public Map<String, Iterable<Message>> getURISortedMessages(int type) { + List<String> uris = new ArrayList<String>(); + for (Message mess : getMessages(null, type)) { + if (!uris.contains(mess.getURI())) + uris.add(mess.getURI()); + } + Map<String, Iterable<Message>> sortedMap = new Hashtable<String, Iterable<Message>>(); + for (String uri : uris) { + sortedMap.put(uri, getMessages(uri, type)); + } + return sortedMap; + } + + public Iterable<Message> getWarningMessages(String uri) { + return getMessages(uri, Message.WARNING); + } + } Index: OldResponseXBeans.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/response/impl/OldResponseXBeans.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- OldResponseXBeans.java 19 Oct 2009 12:41:24 -0000 1.1 +++ OldResponseXBeans.java 19 Oct 2009 16:20:18 -0000 1.2 @@ -4,7 +4,10 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Date; +import java.util.Hashtable; +import java.util.Iterator; import java.util.List; +import java.util.Map; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlOptions; @@ -28,9 +31,13 @@ private Observationresponse or; private List<Message> messages = new ArrayList<Message>(); - private List<Message> errorMessages = new ArrayList<Message>(); - private List<Message> warningMessages = new ArrayList<Message>(); - private List<Message> infoMessages = new ArrayList<Message>(); + private int errorCount = 0; + private int warningCount = 0; + private int infoCount = 0; + + //private List<Message> errorMessages = new ArrayList<Message>(); + //private List<Message> warningMessages = new ArrayList<Message>(); + //private List<Message> infoMessages = new ArrayList<Message>(); private String requestURI; @@ -66,7 +73,8 @@ else mess.setURI(or.getUri()); messages.add(mess); - errorMessages.add(mess); + errorCount++; + //errorMessages.add(mess); } } } @@ -79,7 +87,8 @@ else mess.setURI(or.getUri()); messages.add(mess); - infoMessages.add(mess); + infoCount++; + //infoMessages.add(mess); } } } @@ -92,7 +101,8 @@ else mess.setURI(or.getUri()); messages.add(mess); - warningMessages.add(mess); + warningCount++; + //warningMessages.add(mess); } } } @@ -113,14 +123,6 @@ return null; } - public int getErrorCount() { - return errorMessages.size(); - } - - public List<Message> getErrorMessages() { - return errorMessages; - } - public List<Group> getGroupChildren(Group group) { return null; } @@ -138,14 +140,30 @@ } } + public int getErrorCount() { + return errorCount; + } + + public Iterable<Message> getErrorMessages() { + return getMessages(null, Message.ERROR); + } + public int getInfoCount() { - return infoMessages.size(); + return infoCount; } - public List<Message> getInfoMessages() { - return infoMessages; + public Iterable<Message> getInfoMessages() { + return getMessages(null, Message.INFO); + } + + public int getWarningCount() { + return warningCount; } + public Iterable<Message> getWarningMessages() { + return getMessages(null, Message.WARNING); + } + public List<Message> getMessages() { return messages; } @@ -168,14 +186,6 @@ return or.getUri(); } - public int getWarningCount() { - return warningMessages.size(); - } - - public List<Message> getWarningMessages() { - return warningMessages; - } - public boolean hasGroups() { return false; } @@ -190,7 +200,6 @@ public void setObserverId(String obsId) { observerID = obsId; - } public String getObserverID() { @@ -206,5 +215,77 @@ return true; return false; } + + public Iterable<Message> getMessages(String uri, Integer type) { + return new MessageIterable(uri, type); + } + + protected class MessageIterable implements Iterable<Message> { + private int index = 0; + private Integer type; + private String uri; + + public MessageIterable(String uri, Integer type) { + this.uri = uri; + this.type = type; + } + + public Iterator<Message> iterator() { + return new Iterator<Message>() { + public boolean hasNext() { + int x = index; + while (x < messages.size()) { + if ((uri == null || messages.get(x).getURI().equals(uri)) && + (type == null || messages.get(x).getType() == type)) + return true; + x++; + } + return false; + } + + public Message next() { + while (index < messages.size()) { + if ((uri == null || messages.get(index).getURI().equals(uri)) && + (type == null || messages.get(index).getType() == type)) { + index++; + return messages.get(index - 1); + } + index++; + } + return null; + } + + public void remove() { + return; + } + }; + } + } + + public Iterable<Message> getErrorMessages(String uri) { + return getMessages(uri, Message.ERROR); + } + + public Iterable<Message> getInfoMessages(String uri) { + return getMessages(uri, Message.INFO); + } + + public Iterable<Message> getWarningMessages(String uri) { + return getMessages(uri, Message.WARNING); + } + + public Map<String, Iterable<Message>> getURISortedMessages(int type) { + List<String> uris = new ArrayList<String>(); + for (Message mess : getMessages(null, type)) { + if (!uris.contains(mess.getURI())) + uris.add(mess.getURI()); + } + Map<String, Iterable<Message>> sortedMap = new Hashtable<String, Iterable<Message>>(); + for (String uri : uris) { + sortedMap.put(uri, getMessages(uri, type)); + } + return sortedMap; + } + }
Received on Monday, 19 October 2009 16:20:22 UTC