VCardParser.java revision c955c8b0da0c9fcbad0ddcae76641358c27e72cd
1/* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 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 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 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. 15 */ 16package com.android.vcard; 17 18import com.android.vcard.exception.VCardException; 19 20import java.io.IOException; 21import java.io.InputStream; 22 23public interface VCardParser { 24 /** 25 * <p> 26 * Parses the given stream and send the vCard data into VCardBuilderBase object. 27 * </p>. 28 * <p> 29 * Note that vCard 2.1 specification allows "CHARSET" parameter, and some career sets 30 * local encoding to it. For example, Japanese phone career uses Shift_JIS, which is 31 * formally allowed in vCard 2.1, but not allowed in vCard 3.0. In vCard 2.1, 32 * In some exreme case, it is allowed for vCard to have different charsets in one vCard. 33 * </p> 34 * <p> 35 * We recommend you use {@link VCardSourceDetector} and detect which kind of source the 36 * vCard comes from and explicitly specify a charset using the result. 37 * </p> 38 * 39 * @param is The source to parse. 40 * @param interepreter A {@link VCardInterpreter} object which used to construct data. 41 * @throws IOException, VCardException 42 */ 43 public void parse(InputStream is, VCardInterpreter interepreter) 44 throws IOException, VCardException; 45 46 /** 47 * <p> 48 * Cancel parsing vCard. Useful when you want to stop the parse in the other threads. 49 * </p> 50 * <p> 51 * Actual cancel is done after parsing the current vcard. 52 * </p> 53 */ 54 public void cancel(); 55} 56