01: /*******************************************************************************
02: * Copyright (c) 2000, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.core.plugin;
11:
12: import org.eclipse.pde.core.IModel;
13: import org.eclipse.pde.core.IModelChangeProvider;
14:
15: /**
16: * This type of model is created by parsing the manifest file.
17: * It serves as a base interface for both plug-in and
18: * fragment models by holding data common to both.
19: * If the file is a workspace resource, it will be
20: * available as the underlying resource of the model.
21: * The model may be read-only or editable.
22: * It will also make a reference to the build.properties
23: * model when created. The reference will be of the
24: * same type as the model itself: if the model is
25: * editable, it will attempt to obtain an exclusive
26: * editable copy of build.properties model.
27: * <p>
28: * The plug-in model can be disabled. Disabling the
29: * model will not change its data. Users of the
30: * model will have to decide if the disabled state
31: * if of any importance to them or not.
32: * <p>
33: * The model is capable of notifying listeners
34: * about changes. An attempt to change a read-only
35: * model will result in a CoreException.
36: */
37: public interface ISharedPluginModel extends IModel,
38: IModelChangeProvider {
39: /**
40: * Returns a factory object that should be used
41: * to create new instances of the model objects.
42: */
43: IExtensionsModelFactory getFactory();
44:
45: /**
46: * Returns a location of the file that was used
47: * to create this model. The location can be that
48: * of a directory or that of a JAR file.
49: *
50: * @return a location of the external model, or
51: * <samp>null</samp> if the model is not created
52: * from a resource or a file in the file system.
53: */
54: String getInstallLocation();
55:
56: }
|