package es.uniovi.reflection.patternmining.debug;

public class TypeDefinition extends Node {			
	public boolean isInnerClass;	
	public boolean isNestedClass;
	public boolean isStatic;
	public String typeDefinitionCategory;
	public boolean typePublicVisibility;
	public boolean isFinalClass;
	public boolean hasExtends;
	public boolean isAbstract;
	public boolean isStrictFP;
	public int numberAnnotations;
	public boolean isInDefaultPackage;
	public int numberImplements;
	public int numberGenericTypes;
	public int numberMethods;
	public float percentageOverloadedMethods;
	public int numberConstructors;
	public int numberFields;
	public int numberNestedClasses;
	public int numberStaticNestedClasses;
	public int numberInnerClasses;
	public String typeNaming;
	public float staticFieldPercentage;
	public float staticMethodPercentage;
	public int numberStaticBlocks;
	public String sourceCode;
	public long fileId;
		
	public TypeDefinition(long id, boolean isInnerClass, boolean isNestedClass, boolean isStatic, String typeDefinitionCategory, boolean typePublicVisibility,
			boolean isFinalClass, boolean hasExtends, boolean isAbstract, boolean isStrictFP, int numberAnnotations, 
			boolean isInDefaultPackage, int numberImplements, int numberGenericTypes, int numberMethods, 
			float percentageOverloadedMethods, int numberConstructors, int numberFields, int numberNestedClasses, 
			int numberStaticNestedClasses, int numberInnerClasses, String typeNaming, float staticFieldPercentage,
			float staticMethodPercentage, int numberStaticBlocks, String sourceCode, long fileId) {
		this.id = id;
		this.isInnerClass = isInnerClass;
		this.isNestedClass = isNestedClass;
		this.isStatic = isStatic;
		this.typeDefinitionCategory = typeDefinitionCategory;
		this.typePublicVisibility = typePublicVisibility;
		this.isFinalClass = isFinalClass;
		this.hasExtends = hasExtends;
		this.isAbstract = isAbstract;
		this.isStrictFP = isStrictFP;
		this.numberAnnotations = numberAnnotations;
		this.isInDefaultPackage = isInDefaultPackage;
		this.numberImplements = numberImplements;
		this.numberGenericTypes = numberGenericTypes;
		this.numberMethods = numberMethods;
		this.percentageOverloadedMethods = percentageOverloadedMethods;
		this.numberConstructors = numberConstructors;
		this.numberFields = numberFields;
		this.numberNestedClasses = numberNestedClasses;
		this.numberStaticNestedClasses = numberStaticNestedClasses;
		this.numberInnerClasses = numberInnerClasses;
		this.typeNaming = typeNaming;
		this.staticFieldPercentage = staticFieldPercentage;
		this.staticMethodPercentage = staticMethodPercentage;
		this.numberStaticBlocks = numberStaticBlocks;
		this.sourceCode = sourceCode;
		this.fileId = fileId;
	}	
}

