]> source.dussan.org Git - aspectj.git/blob
5173dbe23a16fec2d386033efa69d315b9cd627d
[aspectj.git] /
1 /* *******************************************************************
2  * Copyright (c) 2006 Contributors.
3  * All rights reserved. 
4  * This program and the accompanying materials are made available 
5  * under the terms of the Eclipse Public License v1.0 
6  * which accompanies this distribution and is available at 
7  * http://eclipse.org/legal/epl-v10.html 
8  *  
9  * Contributors: 
10  *   Adrian Colyer                      Initial implementation
11  * ******************************************************************/
12 package org.aspectj.ajdt.internal.compiler;
13
14 import java.io.File;
15 import java.util.List;
16
17 /**
18  * acts as a bridge from ajde's OutputLocationManager interface to the compiler internals
19  * @author adrian
20  *
21  */
22 public interface CompilationResultDestinationManager {
23
24         /**
25          * Return the directory root under which the results of compiling the given
26          * source file. For example, if the source file contains the type a.b.C, and
27          * this method returns "target/classes" the resulting class file will be written
28          * to "target/classes/a/b/C.class"
29          * 
30          * @param compilationUnit  the compilation unit that has been
31          *  compiled
32          * @return a File object representing the root directory under which compilation results for this
33          *  unit should be written
34          */
35         File getOutputLocationForClass(File compilationUnit);
36         
37         /**
38          * When copying resources from source folders to output location, return the
39          * root directory under which the resource should be copied.
40          * 
41          * @param resource the resource to be copied
42          * @return a File object representing the root directory under which this resource
43          * should be copied
44          */
45         File getOutputLocationForResource(File resource);
46         
47         /**
48          * Return a list of all output locations handled by this OutputLocationManager
49          */
50         List /*File*/ getAllOutputLocations();
51         
52         /**
53          * Return the default output location (for example, <my_project>/bin). This is
54          * where classes which are on the inpath will be placed.
55          */
56         File getDefaultOutputLocation();
57         
58 }