@@ -0,0 +1,3550 @@
+package org.intermine.api;%0A%0A/*%0A * Copyright (C) 2002-2009 FlyMine%0A *%0A * This code may be freely distributed and modified under the%0A * terms of the GNU Lesser General Public Licence.  This should%0A * be distributed with the code.  See the LICENSE file for more%0A * information or http://www.gnu.org/copyleft/lesser.html.%0A *%0A */%0A%0Aimport java.util.List;%0Aimport java.util.Map;%0A%0Aimport org.intermine.api.bag.BagManager;%0Aimport org.intermine.api.bag.BagQueryConfig;%0Aimport org.intermine.api.profile.Profile;%0Aimport org.intermine.api.profile.ProfileManager;%0Aimport org.intermine.api.query.PathQueryExecutor;%0Aimport org.intermine.api.query.WebResultsExecutor;%0Aimport org.intermine.api.template.TemplateManager;%0Aimport org.intermine.api.template.TemplateSummariser;%0Aimport org.intermine.metadata.FieldDescriptor;%0Aimport org.intermine.metadata.Model;%0Aimport org.intermine.objectstore.ObjectStore;%0Aimport org.intermine.objectstore.ObjectStoreWriter;%0A%0Apublic class InterMineAPI %7B%0A%0A    private ObjectStore objectStore;%0A    private Model model;%0A    private Map%3CString, List%3CFieldDescriptor%3E%3E classKeys;%0A    private BagQueryConfig bagQueryConfig;%0A    private ProfileManager profileManager;%0A    private TemplateManager templateManager;%0A    private BagManager bagManager;%0A    private TemplateSummariser templateSummariser;%0A    %0A    protected InterMineAPI(ObjectStore objectStore, ObjectStoreWriter userProfileWriter,%0A            Map%3CString, List%3CFieldDescriptor%3E%3E classKeys, BagQueryConfig bagQueryConfig) %7B%0A        this.objectStore = objectStore;%0A        this.model = objectStore.getModel();%0A        this.classKeys = classKeys;%0A        this.bagQueryConfig = bagQueryConfig;%0A        this.profileManager = new ProfileManager(objectStore, userProfileWriter);%0A        this.bagManager = new BagManager(profileManager.getSuperuserProfile(), model);%0A        this.templateManager = new TemplateManager(profileManager.getSuperuserProfile(), model);%0A        this.templateSummariser = new TemplateSummariser(objectStore, %0A                profileManager.getProfileObjectStoreWriter());%0A    %7D%0A    %0A    /**%0A     * @return the objectStore%0A     */ %0A    public ObjectStore getObjectStore() %7B%0A        return objectStore;%0A    %7D%0A    %0A    /**%0A     * @return the model%0A     */%0A    public Model getModel() %7B%0A        return model;%0A    %7D%0A    /**%0A     * @return the profileManager%0A     */%0A    public ProfileManager getProfileManager() %7B%0A        return profileManager;%0A    %7D%0A    /**%0A     * @return the templateManager%0A     */%0A    public TemplateManager getTemplateManager() %7B%0A        return templateManager;%0A    %7D%0A    /**%0A     * @return the bagManager%0A     */%0A    public BagManager getBagManager() %7B%0A        return bagManager;%0A    %7D%0A    /**%0A     * @return the templateSummariser%0A     */%0A    public TemplateSummariser getTemplateSummariser() %7B%0A        return templateSummariser;%0A    %7D%0A%0A    /**%0A     * @param profile the user that is executing the query%0A     * @return the webResultsExecutor%0A     */%0A    public WebResultsExecutor getWebResultsExecutor(Profile profile) %7B%0A        return new WebResultsExecutor(objectStore, classKeys, bagQueryConfig, profile,%0A                templateManager.getConversionTemplates(), bagManager);%0A    %7D%0A    %0A    /**%0A     * @param profile the user that is executing the query%0A     * @return the pathQueryExecutor%0A     */%0A    public PathQueryExecutor getPathQueryExecutor(Profile profile) %7B%0A        return new PathQueryExecutor(objectStore, classKeys, bagQueryConfig, profile,%0A                templateManager.getConversionTemplates(), bagManager);%0A    %7D%0A    %0A    %0A%0A%7D%0A

Add outline of an InterMine API class.