package org.etk.model.core.entity;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.etk.model.plugins.entity.binding.EntityBinding;
import org.etk.orm.plugins.bean.typegen.PropertyDefinition;
public class EntityType {
public enum Kind {
JSON, JDBC, JCR
}
/** . */
private Kind entityKind;
/** . */
final EntityBinding binding;
/** . */
final String name;
/** . */
final String className;
final Map<String, String> dataMap;
/** . */
final Map<String, PropertyDefinition> properties;
public Kind getEntityKind() {
return entityKind;
}
public EntityType(EntityBinding binding) {
this(binding, Kind.JSON);
}
public EntityType(EntityBinding binding, Kind kind) {
this.entityKind = Kind.JSON;
this.binding = binding;
this.name = binding.getEntityTypeName();
this.className = binding.getEntity().getClassType().getName();
this.properties = new HashMap<String, PropertyDefinition>();
this.dataMap = new HashMap<String, String>();
}
public String getClassName() {
return className;
}
public boolean isDeclared() {
return binding.getEntity().isDeclared();
}
public String getName() {
return name;
}
public PropertyDefinition getPropertyDefinition(String propertyName) {
return properties.get(propertyName);
}
public Map<String, PropertyDefinition> getPropertyDefinitions() {
return properties;
}
public Set<String> getPropertyNames() {
return dataMap.keySet();
}
@Override
public String toString() {
return "EntityType[name=" + name + "]";
}
}