public class NodeType {
	public static final String TYPE_CLASS = "owl:Class";
	public static final String TYPE_RDFSCLASS = "rdfs:Class";
	public static final String TYPE_EQUIVALENT = "owl:equivalentClass";
	public static final String TYPE_EXTERNALCLASS = "externalclass";
	public static final String TYPE_DEPRECTAEDCLASS = "owl:DeprecatedClass";
	public static final String TYPE_THING = "owl:Thing";
	public static final String TYPE_NOTHING = "owl:Nothing";
	public static final String TYPE_RDFSRESOURCE = "rdfs:Resource";
	public static final String TYPE_UNION = "owl:unionOf";
	public static final String TYPE_INTERSECTION = "owl:intersectionOf";
	public static final String TYPE_DISJOINTUNION = "owl:disjointUnionOf";
	public static final String TYPE_COMPLEMENT = "owl:complementOf";
	public static final String TYPE_DATATYPE = "rdfs:Datatype";
	public static final String TYPE_LITERAL = "rdfs:Literal";
	public static final String KEY_TYPE_DATA_ONE_OF = "DATA_ONE_OF";
} public enum VowlAttribute {
	INTERSECTION("intersection"),
	OBJECT("object"),
	DEPRECATED("deprecated"),
	EXTERNAL("external"),
	RDF("rdf"),
	UNION("union"),
	COMPLEMENT("complement"),
	DATATYPE("datatype"),
	TRANSITIVE("transitive"),
	FUNCTIONAL("functional"),
	INVERSE_FUNCTIONAL("inverse functional"),
	SYMMETRIC("symmetric"),
	EQUIVALENT("equivalent"),
	IRREFLEXIVE("irreflexive"),
	ASYMMETRIC("asymmetric"),
	REFLEXIVE("reflexive"),
	IMPORTED("external"),
	ANONYMOUS("anonymous"),
	DISJOINTUNION("disjointUnion"),
	KEY("key"),
	ALL_VALUES("allValues"),
	SOME_VALUES("someValues");

	private final String value;

	VowlAttribute(String value) {

		this.value = value;
	}

	@JsonValue
	public String getValue() {
		return value;
	}
} public class VowlClass extends AbstractClass {

	public VowlClass(IRI iri) {
		super(iri, NodeType.TYPE_CLASS);
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}

} public class VowlThing extends AbstractClass {
	public static final String THING_IRI = Standard_Iris.OWL_THING_CLASS_URI;
	public static final IRI GENERIC_THING_IRI = IRI.create(THING_IRI);

	protected VowlThing(IRI iri, String type) {
		super(iri, type);
	}

	public VowlThing(IRI iri) {
		super(iri, NodeType.TYPE_THING);
		getAnnotations().addLabel(new Annotation("label", "Thing"));
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}
} public class VowlDatatype extends AbstractDatatype {
	public VowlDatatype(IRI iri) {
		super(iri, NodeType.TYPE_DATATYPE);
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}
} public class VowlLiteral extends AbstractDatatype {
	public static final String LITERAL_IRI = "http://www.w3.org/2000/01/rdf-schema#Literal";

	public VowlLiteral(IRI iri) {
		super(iri, NodeType.TYPE_LITERAL);
		getAnnotations().addLabel(new Annotation("label", "Literal"));
	}

	public String getGenericIri() {
		return LITERAL_IRI;
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}
} public class TypeOfProperty extends AbstractProperty {
	public TypeOfProperty(IRI iri) {
		super(iri, PropertyType.TYPEOF);
		getAnnotations().addLabel(new Annotation("label", "is a"));
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}

	@Override
	public void accept(VowlPropertyVisitor visitor) {
		visitor.visit(this);
	}
} public class VowlDatatypeProperty extends AbstractProperty {
	public VowlDatatypeProperty(IRI iri) {
		super(iri, PropertyType.DATATYPE);
		addAttribute(VowlAttribute.DATATYPE);
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}

	@Override
	public void accept(VowlPropertyVisitor visitor) {
		visitor.visit(this);
	}
} public class VowlObjectProperty extends AbstractProperty {
	public VowlObjectProperty(IRI iri) {
		super(iri, PropertyType.OBJECT);
		addAttribute(VowlAttribute.OBJECT);
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}

	@Override
	public void accept(VowlPropertyVisitor visitor) {
		visitor.visit(this);
	}
} public class VowlIndividual extends AbstractVowlObject {
	public VowlIndividual(IRI iri) {
		super(iri);
	}

	@Override
	public void accept(VowlElementVisitor visitor) {
		visitor.visit(this);
	}
} public interface VowlElementVisitor extends VowlClassVisitor, VowlPropertyVisitor {
	void visit(VowlIndividual vowlIndividual);
}
import de.uni_stuttgart.vis.vowl.owl2vowl.constants.NodeType;
import de.uni_stuttgart.vis.vowl.owl2vowl.constants.VowlAttribute;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.entities.nodes.classes.VowlClass;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.entities.nodes.classes.VowlThing;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.entities.nodes.datatypes.VowlDatatype;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.entities.nodes.datatypes.VowlLiteral;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.entities.properties.TypeOfProperty;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.entities.properties.VowlDatatypeProperty;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.entities.properties.VowlObjectProperty;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.individuals.VowlIndividual;
import de.uni_stuttgart.vis.vowl.owl2vowl.model.visitor.VowlElementVisitor;
import java.util.Collection;
package de.uni_stuttgart.vis.vowl.owl2vowl.parser.vowl;



public class TypeSetter implements VowlElementVisitor {
	@Override
	public void visit(VowlThing vowlThing) {

	}

	@Override
	public void visit(VowlClass vowlClass) {
		vowlClass.setType(getClassType(vowlClass.getAttributes()));
	}

	@Override
	public void visit(VowlLiteral vowlLiteral) {

	}

	@Override
	public void visit(VowlDatatype vowlDatatype) {

	}

	@Override
	public void visit(VowlObjectProperty vowlObjectProperty) {

	}

	@Override
	public void visit(VowlDatatypeProperty vowlDatatypeProperty) {

	}

	@Override
	public void visit(VowlIndividual vowlIndividual) {