package scripting.dal;

import java.util.Iterator;
import org.gvsig.app.project.documents.Document;
import org.gvsig.app.project.documents.table.TableDocument;
import org.gvsig.app.project.documents.view.ViewDocument;

/**
 *
 *
 */
public interface Project extends org.gvsig.app.project.Project {

    /**
     * Returns the java object associated to this python object. With the
     * current implementation this is not necessary, don't use now python
     * wrappers for java objects.
     *
     * @return
     * @deprecated this method now return self alwais.
     *
     */
    public Object __call__();

    /**
     *
     * @return
     */
    public Iterator<Document> __iter__();

    /**
     *
     * @return
     */
    public int __len__();

    /**
     * 
     * @param index
     * @return 
     */
    public Document __getitem__(int index);
    
    /**
     * 
     * @param name, name of the view to retrieve, is optional
     *   if name is not passed, return te current view.
     * 
     * @return 
     */
    public ViewDocument getView(String name);

    /**
     * 
     * @param name, optional
     * @return 
     */
    public  TableDocument getTable(String name);
    
    /**
     * 
     * @return 
     */
    public String getProjectionCode();
    
}
