package org.zend.php.zendserver.deployment.core.descriptor; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.jface.text.IDocument; import org.zend.php.zendserver.deployment.core.internal.descriptor.ModelSerializer; import org.zend.sdklib.mapping.IMappingModel; /** * Contains descriptor model. Container can be a file, URL, zip entry, or * whatever. Container provides read-only and read-write access to model * */ public interface IDescriptorContainer { /** * Descriptor model */ IDeploymentDescriptor getDescriptorModel(); /** * Initialize mapping model using specified document * * @param document */ void initializeMappingModel(IDocument document); /** * Mappings specification */ IMappingModel getMappingModel(); /** * @deprecated use getFileInstead */ IProject getProject(); /** * File containing descriptor, file may not exist yet * @return */ IFile getFile(); void save(); void connect(IDocument document); /** * Causes container to (re)read connected document or file and update model accordingly. * * IDescriptorContainer doesn't listen to document changes by itself to avoid * slowing down modifications. */ void load(); ModelSerializer getModelSerializer(); /** * File containing mapping properties, file may not exist yet * @return */ IFile getMappingFile(); }