mirror of https://github.com/etesync/android
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
47 lines
1.6 KiB
/*******************************************************************************
|
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
|
* All rights reserved. This program and the accompanying materials
|
|
* are made available under the terms of the GNU Public License v3.0
|
|
* which accompanies this distribution, and is available at
|
|
* http://www.gnu.org/licenses/gpl.html
|
|
******************************************************************************/
|
|
package at.bitfire.davdroid.resource;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
|
|
import lombok.Getter;
|
|
import lombok.Setter;
|
|
import lombok.ToString;
|
|
|
|
/**
|
|
* Represents a resource that can be contained in a LocalCollection or RemoteCollection
|
|
* for synchronization by WebDAV.
|
|
*/
|
|
@ToString
|
|
public abstract class Resource {
|
|
@Getter @Setter protected String name, ETag;
|
|
@Getter @Setter protected String uid;
|
|
@Getter protected long localID;
|
|
|
|
|
|
public Resource(String name, String ETag) {
|
|
this.name = name;
|
|
this.ETag = ETag;
|
|
}
|
|
|
|
public Resource(long localID, String name, String ETag) {
|
|
this(name, ETag);
|
|
this.localID = localID;
|
|
}
|
|
|
|
/** initializes UID and remote file name (required for first upload) */
|
|
public abstract void initialize();
|
|
|
|
/** fills the resource data from an input stream (for instance, .vcf file for Contact) */
|
|
public abstract void parseEntity(InputStream entity) throws IOException, InvalidResourceException;
|
|
/** writes the resource data to an output stream (for instance, .vcf file for Contact) */
|
|
public abstract ByteArrayOutputStream toEntity() throws IOException;
|
|
}
|