2 * Copyright 2008 ZXing authors
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package com.google.zxing.client.result;
20 * @author srowen@google.com (Sean Owen)
22 public final class CalendarParsedResult extends ParsedResult {
24 private final String summary;
25 private final String start;
26 private final String end;
27 private final String location;
28 private final String attendee;
29 private final String title;
31 public CalendarParsedResult(String summary,
37 super(ParsedResultType.CALENDAR);
40 this.summary = summary;
43 this.location = location;
44 this.attendee = attendee;
48 public String getSummary() {
53 * <p>We would return the start and end date as a {@link java.util.Date} except that this code
54 * needs to work under JavaME / MIDP and there is no date parsing library available there, such
55 * as <code>java.text.SimpleDateFormat</code>.</p>
57 * @return start time formatted as yyyyMMdd'T'HHmmss'Z'.</p>
59 public String getStart() {
66 public String getEnd() {
70 public String getLocation() {
74 public String getAttendee() {
78 public String getTitle() {
82 public String getDisplayResult() {
83 StringBuffer result = new StringBuffer();
84 maybeAppend(summary, result);
85 maybeAppend(start, result);
86 maybeAppend(end, result);
87 maybeAppend(location, result);
88 maybeAppend(attendee, result);
89 maybeAppend(title, result);
90 return result.toString();
93 private static void validateDate(String date) {
95 if (date.length() != 16) {
96 throw new IllegalArgumentException();
98 for (int i = 0; i < 8; i++) {
99 if (!Character.isDigit(date.charAt(i))) {
100 throw new IllegalArgumentException();
103 if (date.charAt(8) != 'T') {
104 throw new IllegalArgumentException();
106 for (int i = 9; i < 15; i++) {
107 if (!Character.isDigit(date.charAt(i))) {
108 throw new IllegalArgumentException();
111 if (date.charAt(15) != 'Z') {
112 throw new IllegalArgumentException();