14199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa/* 24199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project 34199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 44199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License"); 54199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * you may not use this file except in compliance with the License. 64199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * You may obtain a copy of the License at 74199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 84199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * http://www.apache.org/licenses/LICENSE-2.0 94199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * 104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software 114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS, 124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * See the License for the specific language governing permissions and 144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * limitations under the License. 154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapackage com.android.vcard; 174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport java.util.List; 194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa/** 214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * <P> 224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * The interface which should be implemented by the classes which have to analyze each 234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * vCard entry minutely. 244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * </P> 254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * <P> 264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Here, there are several terms specific to vCard (and this library). 274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * </P> 284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * <P> 294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * The term "entry" is one vCard representation in the input, which should start with "BEGIN:VCARD" 304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * and end with "END:VCARD". 314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * </P> 324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * <P> 334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * The term "property" is one line in vCard entry, which consists of "group", "property name", 344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * "parameter(param) names and values", and "property values". 354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * </P> 364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * <P> 374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * e.g. group1.propName;paramName1=paramValue1;paramName2=paramValue2;propertyValue1;propertyValue2... 384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * </P> 394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapublic interface VCardInterpreter { 414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa /** 424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Called when vCard interpretation started. 434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 441de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa void onVCardStarted(); 454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa /** 474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Called when vCard interpretation finished. 484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 491de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa void onVCardEnded(); 504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 5148dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa /** 524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Called when parsing one vCard entry started. 534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * More specifically, this method is called when "BEGIN:VCARD" is read. 5448dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * 551de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa * This may be called before {@link #onEntryEnded()} is called, as vCard 2.1 accepts nested 561de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa * vCard. 5748dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * 5848dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * <code> 5948dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * BEGIN:VCARD 6048dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * BEGIN:VCARD 6148dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * VERSION:2.1 6248dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * N:test;;;; 6348dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * END:VCARD 6448dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * END:VCARD 6548dd8e86a81d2ab40eb762975c8211c225002bf0Daisuke Miyakawa * </code> 664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 671de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa void onEntryStarted(); 684199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 694199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa /** 704199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Called when parsing one vCard entry ended. 714199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * More specifically, this method is called when "END:VCARD" is read. 724199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 731de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa void onEntryEnded(); 744199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa 754199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa /** 761de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa * Called when a property is created. 774199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */ 781de396f6df89363169d3a2e61a61fa98d12c1ef8Daisuke Miyakawa void onPropertyCreated(VCardProperty property); 794199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa} 80