package at.ac.ait.archistar.engine.metadata;
import java.util.Map;
import java.util.Set;
import at.ac.ait.archistar.backendserver.fragments.Fragment;
import at.ac.ait.archistar.engine.dataobjects.FSObject;
/**
* The Metadata-Service is responsible for all filesystem/object metadata
* operations including: file listings, file versions, file deletion.
*
* @author andy
*/
public interface MetadataService {
/**
* connect and bootstrap to servers
*/
int connect();
/**
* disconnect from all servers
*/
int disconnect();
/**
* returns a matching for a given path
*/
Set<Fragment> getDistributionFor(String path);
/**
* makes sure that everything is synchronized
*/
int synchronize();
/**
* List files in correspondence to a path expression
*/
Set<String> list(String path);
/**
* removes an object from the index
*/
int delete(FSObject obj);
/**
* retrieves stat information about an object
*/
Map<String, String> stat(String path);
}