Index: /Code/ModelTranslator/.classpath
===================================================================
--- /Code/ModelTranslator/.classpath	(revision 76)
+++ /Code/ModelTranslator/.classpath	(revision 77)
@@ -2,5 +2,5 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry excluding="de/uni_hildesheim/sse/trans/package-info.java|de/uni_hildesheim/sse/trans/in/package-info.java|de/uni_hildesheim/sse/trans/convert/package-info.java|de/uni_hildesheim/sse/trans/out/package-info.java" kind="src" path="test"/>
+	<classpathentry excluding="de/uni_hildesheim/sse/trans/package-info.java|de/uni_hildesheim/sse/trans/in/package-info.java|de/uni_hildesheim/sse/trans/convert/package-info.java|de/uni_hildesheim/sse/trans/out/package-info.java|de/uni_hildesheim/sse/trans/in/rsf/package-info.java" kind="src" path="test"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/Model"/>
Index: /Code/ModelTranslator/input/testModel.rsf
===================================================================
--- /Code/ModelTranslator/input/testModel.rsf	(revision 77)
+++ /Code/ModelTranslator/input/testModel.rsf	(revision 77)
@@ -0,0 +1,5 @@
+# A small test-model
+# Has 3 variables
+Item	a	boolean
+Item	b	boolean
+Item	c	boolean
Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFCondition.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFCondition.java	(revision 77)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFCondition.java	(revision 77)
@@ -0,0 +1,34 @@
+package de.uni_hildesheim.sse.trans.in.rsf;
+
+import de.uni_hildesheim.sse.model.cst.ConstraintSyntaxTree;
+
+/**
+ * Represents a condition read from a .rsf file.
+ * 
+ * @author Adam Krafczyk
+ */
+class RSFCondition {
+
+    private String variable;
+    private String condition;
+    
+    /**
+     * Creates a condition with the given variable and condition as read from the .rsf file.
+     * @param variable The name of the variable
+     * @param condition The condition as read from the .rsf file
+     */
+    RSFCondition(String variable, String condition) {
+        this.variable = variable;
+        this.condition = condition;
+    }
+    
+    /**
+     * Returns this condition as a {@link ConstraintSyntaxTree}.
+     * It will look like: (variable AND condition) OR (NOT variable AND NOT condition).
+     * @return A {@link ConstraintSyntaxTree} representing this condition.
+     */
+    ConstraintSyntaxTree toConstraintSyntaxTree() {
+        return null;
+    }
+    
+}
Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFReader.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFReader.java	(revision 76)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFReader.java	(revision 77)
@@ -5,7 +5,11 @@
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
+import de.uni_hildesheim.sse.model.cst.CSTSemanticException;
+import de.uni_hildesheim.sse.model.varModel.Constraint;
 import de.uni_hildesheim.sse.model.varModel.Project;
 import de.uni_hildesheim.sse.model.varModel.datatypes.BooleanType;
@@ -18,4 +22,6 @@
 import de.uni_hildesheim.sse.trans.in.ParserException;
 import de.uni_hildesheim.sse.trans.in.ParserException.ParserExceptionType;
+import de.uni_hildesheim.sse.utils.logger.EASyLoggerFactory;
+import de.uni_hildesheim.sse.utils.logger.EASyLoggerFactory.EASyLogger;
 
 /**
@@ -27,6 +33,9 @@
  */
 public class RSFReader extends AbstractReader {
+    private static final EASyLogger LOGGER = EASyLoggerFactory.INSTANCE.getLogger(RSFReader.class, "RSFReader");
     
     private Map<String, RSFItem> items;
+    
+    private List<RSFCondition> conditions;
     
     /**
@@ -39,4 +48,5 @@
         super(rsfFile);
         items = new LinkedHashMap<String, RSFItem>();
+        conditions = new ArrayList<RSFCondition>();
     }
     
@@ -67,5 +77,4 @@
         for (RSFItem item : items.values()) {
             IDatatype type = null;
-            System.out.println(item.getName());
             switch(item.getDatatype()) {
             case BOOLEAN:
@@ -91,4 +100,15 @@
         }
         
+        // 3. Add all conditions
+        for (RSFCondition condition : conditions) {
+            try {
+                Constraint constraint = new Constraint(model);
+                constraint.setConsSyntax(condition.toConstraintSyntaxTree());
+                model.add(constraint);
+            } catch (CSTSemanticException e) {
+                LOGGER.exception(e);
+            }
+        }
+        
         return model;
     }
@@ -112,18 +132,24 @@
                 switch (fieldType) {
                 case "Item":
+                    // Datatype in [2]
                     item.setDatatype(columns[2]);
-                    // Datatype in [2]
                     break;
                 case "Prompt":
-                    // Comment in [2]
+                    // Default value in [2]
                     break;
                 case "Default":
-                    // Default value in [3], condition [2]
+                    // Default value in [2], condition in [3]
+                    // TODO: read condition?
                     break;
                 case "HasPrompts":
+                    // TODO: what is this?
                     break;
                 case "ItemSelects":
+                    // other variable in [2], condition in [3]
+                    // TODO: read condition?
                     break;
                 case "Depends":
+                    // condition in [2]
+                    conditions.add(new RSFCondition(itemName, columns[3]));
                     break;
                 case "Choice":
Index: /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/AllTests.java
===================================================================
--- /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/AllTests.java	(revision 76)
+++ /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/AllTests.java	(revision 77)
@@ -11,4 +11,5 @@
 import de.uni_hildesheim.sse.trans.convert.MaxTermConverterTest;
 import de.uni_hildesheim.sse.trans.in.ModelReaderTest;
+import de.uni_hildesheim.sse.trans.in.rsf.RSFReaderTest;
 import de.uni_hildesheim.sse.trans.out.DimacsWriterTest;
 
@@ -22,4 +23,5 @@
 @SuiteClasses({
     ModelReaderTest.class,
+    RSFReaderTest.class,
     DisjunctionCheckerTest.class,
     MaxTermConverterTest.class,
Index: /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/RSFReaderTest.java
===================================================================
--- /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/RSFReaderTest.java	(revision 77)
+++ /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/RSFReaderTest.java	(revision 77)
@@ -0,0 +1,43 @@
+package de.uni_hildesheim.sse.trans.in.rsf;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import de.uni_hildesheim.sse.model.varModel.Project;
+import de.uni_hildesheim.sse.model.varModel.filter.ConstraintFinder;
+import de.uni_hildesheim.sse.model.varModel.filter.DeclarationFinder;
+import de.uni_hildesheim.sse.model.varModel.filter.DeclarationFinder.VisibilityType;
+import de.uni_hildesheim.sse.model.varModel.filter.FilterType;
+import de.uni_hildesheim.sse.trans.AllTests;
+import de.uni_hildesheim.sse.trans.in.ParserException;
+
+/**
+ * Tests for {@link RSFReader}.
+ * 
+ * @author Adam Krafczyk
+ */
+public class RSFReaderTest {
+
+    /**
+     * Tests the read method of the {@link RSFReader}.
+     * @throws IOException when the {@link RSFReader} throws an {@link IOException}.
+     * @throws ParserException  when the {@link RSFReader} throws an {@link ParserException}.
+     */
+    @Test
+    public void testRead() throws IOException, ParserException {
+        File modelFile = new File(AllTests.INPUT_FOLDER, "testModel.rsf");
+        RSFReader reader = new RSFReader(modelFile);
+        
+        Project project = reader.read();
+        
+        ConstraintFinder cFinder = new ConstraintFinder(project);
+        Assert.assertEquals(0, cFinder.getConstraints().size()); // TODO
+        
+        DeclarationFinder varFinder = new DeclarationFinder(project, FilterType.ALL, null);
+        Assert.assertEquals(3, varFinder.getVariableDeclarations(VisibilityType.ALL).size());
+    }
+    
+}
Index: /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/package-info.java
===================================================================
--- /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/package-info.java	(revision 77)
+++ /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/package-info.java	(revision 77)
@@ -0,0 +1,7 @@
+
+/**
+ * Tests for reading model files.
+ * @author Adam Krafczyk
+ *
+ */
+package de.uni_hildesheim.sse.trans.in.rsf;
