View Javadoc
1   /*
2    * Copyright (c) 2005-2007 Creative Sphere Limited.
3    * All rights reserved. This program and the accompanying materials
4    * are made available under the terms of the Eclipse Public License v1.0
5    * which accompanies this distribution, and is available at
6    * http://www.eclipse.org/legal/epl-v10.html
7    *
8    * Contributors:
9    *
10   *   Creative Sphere - initial API and implementation
11   *
12   */
13  package org.abstracthorizon.extend.server.deployment;
14  
15  import java.net.URI;
16  
17  /**
18   *  This interface describes module loader - a class that knows how to load module from given URI.
19   *
20   * @author Daniel Sendula
21   */
22  public interface ModuleLoader {
23  
24      /**
25       * Returns <code>true</code> if module loader knows how to load (create) module from given URI.
26       * @param uri URI
27       * @return <code>true</code> if module loader knows how to load (create) module from given URI
28       */
29      boolean canLoad(URI uri);
30      
31      /**
32       * Translates URI to moduleId
33       * @param uri uri
34       * @return module id or <code>null</code>
35       */
36      ModuleId toModuleId(URI uri);
37  
38      /**
39       * Loads module from given URI. If {@link #canLoad(URI)} returns <code>false</code> then this method
40       * will return <code>null</code>.
41       * @param uri URI for module to be loaded from
42       * @return module from given URI
43       */
44      Module load(URI uri);
45  
46      /**
47       * Loads module from given URI. If {@link #canLoad(URI)} returns <code>false</code> then this method
48       * will return <code>null</code>.
49       * @param uri URI for module to be loaded from
50       * @param moduleId module id to be used while creating module
51       * @return module from given URI
52       */
53      Module loadAs(URI uri, ModuleId moduleId);
54  
55  }