2014-09-04 14:35:44 +00:00
|
|
|
package de.dhbwstuttgart.syntaxtree;
|
2016-12-15 23:00:37 +00:00
|
|
|
import java.util.*;
|
2015-08-27 11:36:14 +00:00
|
|
|
|
|
|
|
|
2017-03-02 17:16:14 +00:00
|
|
|
import de.dhbwstuttgart.parser.NullToken;
|
2016-12-15 14:45:23 +00:00
|
|
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
2017-03-06 16:59:01 +00:00
|
|
|
import de.dhbwstuttgart.typeinference.ConstraintSet;
|
2017-03-08 02:43:47 +00:00
|
|
|
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceInformation;
|
2013-10-18 11:33:46 +00:00
|
|
|
|
|
|
|
|
2017-01-11 15:42:02 +00:00
|
|
|
public class SourceFile extends SyntaxTreeNode{
|
|
|
|
private String pkgName;
|
2016-12-15 23:00:37 +00:00
|
|
|
|
2017-01-11 15:42:02 +00:00
|
|
|
public List<ClassOrInterface> KlassenVektor = new ArrayList<>();
|
2016-12-07 13:32:48 +00:00
|
|
|
private List<JavaClassName> imports;
|
|
|
|
|
2013-10-18 11:33:46 +00:00
|
|
|
/**
|
2015-05-12 17:49:27 +00:00
|
|
|
* Die SourceFile repräsntiert eine zu einem Syntaxbaum eingelesene Java-Datei.
|
2014-02-11 15:30:38 +00:00
|
|
|
* SourceFile stellt dabei den Wurzelknoten des Syntaxbaumes dar.
|
2013-10-18 11:33:46 +00:00
|
|
|
*/
|
2017-01-11 15:42:02 +00:00
|
|
|
public SourceFile(String pkgName,List<ClassOrInterface> classDefinitions,List<JavaClassName> imports){
|
2017-03-02 17:16:14 +00:00
|
|
|
super(new NullToken());
|
2017-01-11 15:42:02 +00:00
|
|
|
this.KlassenVektor = classDefinitions;
|
|
|
|
if(pkgName != null){
|
|
|
|
this.pkgName = pkgName;
|
|
|
|
}
|
|
|
|
if(imports != null){
|
|
|
|
this.imports = imports;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public SourceFile(List<ClassOrInterface> classDefinitions){
|
|
|
|
this(null, classDefinitions, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
public SourceFile(String pkgName, List<ClassOrInterface> classDefinitions){
|
|
|
|
this(pkgName, classDefinitions, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
public SourceFile(List<ClassOrInterface> classDefinitions, List<JavaClassName> imports){
|
|
|
|
this(null, classDefinitions, imports);
|
|
|
|
}
|
2017-01-16 22:32:12 +00:00
|
|
|
|
|
|
|
public String getPkgName(){
|
|
|
|
return this.pkgName;
|
|
|
|
}
|
2017-02-22 20:25:57 +00:00
|
|
|
|
|
|
|
// Get imports (to test implementation)
|
|
|
|
public List<JavaClassName> getImports(){
|
|
|
|
return this.imports;
|
|
|
|
}
|
2017-03-06 16:59:01 +00:00
|
|
|
|
|
|
|
public ConstraintSet getConstraints(TypeInferenceInformation info){
|
|
|
|
ConstraintSet ret = new ConstraintSet();
|
|
|
|
for(ClassOrInterface cl : this.KlassenVektor){
|
|
|
|
ret.addAll(cl.getConstraints(info));
|
|
|
|
}
|
|
|
|
return ret;
|
|
|
|
}
|
2013-10-18 11:33:46 +00:00
|
|
|
}
|