// Path: src/c/CClass.java
// public interface CClass extends CDeclaration {
// 
//     public List<Field> getFields();
// 
//     public boolean isStatic();
// }
// 
// Path: src/c/DeclarationType.java
// public enum DeclarationType {
//     CLASS,
//     CONSTANT,
//     FIELD,
//     METHOD,
//     ENUM,
//     VARIABLE;
// }
// 
// Path: src/c/Field.java
// public interface Field extends CDeclaration{
// 
//     public String getType();
//     public boolean isFinal();
// }


import c.CClass;
import c.DeclarationType;
import c.Field;
import java.util.List;
package impl;



/**
 * Created with IntelliJ IDEA.
 * User: Vladimir
 * Date: 5.3.2014
 * Time: 10:12
 */
public class Clazz implements CClass {

    String name;

    List<Field> fields = new FieldList<Field>();

    public Clazz(String name) {
        this.name = name;
    }

    @Override
    public List<Field> getFields() {
        return fields;
    }

    @Override
    public boolean isStatic() {
        return false;
    }

    @Override
    public String getName() {
        return name;
    }

    public String toString(){
        String str = "class " + name + "\n";
        for(Field f: fields){
            str += f+"\n";
        }
        return str ;
    }

    @Override
// Path: src/c/CClass.java
// public interface CClass extends CDeclaration {
// 
//     public List<Field> getFields();
// 
//     public boolean isStatic();
// }
// 
// Path: src/c/DeclarationType.java
// public enum DeclarationType {
//     CLASS,
//     CONSTANT,
//     FIELD,
//     METHOD,
//     ENUM,
//     VARIABLE;
// }
// 
// Path: src/c/Field.java
// public interface Field extends CDeclaration{
// 
//     public String getType();
//     public boolean isFinal();
// }


// Path: src/impl/Clazz.java
import c.CClass;
import c.DeclarationType;
import c.Field;
import java.util.List;

package impl;



/**
 * Created with IntelliJ IDEA.
 * User: Vladimir
 * Date: 5.3.2014
 * Time: 10:12
 */
public class Clazz implements CClass {

    String name;

    List<Field> fields = new FieldList<Field>();

    public Clazz(String name) {
        this.name = name;
    }

    @Override
    public List<Field> getFields() {
        return fields;
    }

    @Override
    public boolean isStatic() {
        return false;
    }

    @Override
    public String getName() {
        return name;
    }

    public String toString(){
        String str = "class " + name + "\n";
        for(Field f: fields){
            str += f+"\n";
        }
        return str ;
    }

    @Override
    public DeclarationType getDeclType() {