package org.dddlib.codegen.classdef;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Created by yyang on 2016/12/23.
*/
public class DomainClassDefinition implements ClassDefinition {
private String pkg;
private String name;
private String description;
private boolean isAbstract = false;
private Set<String> pkProps = new HashSet<String>();
private Set<String> uniqueProps = new HashSet<String>();
private List<String> annotations = new ArrayList<String>();
private List<FieldDefinition> fields = new ArrayList<FieldDefinition>();
public String getPkg() {
return pkg;
}
public void setPkg(String pkg) {
this.pkg = pkg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public boolean isAbstract() {
return isAbstract;
}
public void setAbstract(boolean anAbstract) {
isAbstract = anAbstract;
}
public Set<String> getPkProps() {
return pkProps;
}
public void setPkProps(Set<String> pkProps) {
this.pkProps = pkProps;
}
public Set<String> getUniqueProps() {
return uniqueProps;
}
public void setUniqueProps(Set<String> uniqueProps) {
this.uniqueProps = uniqueProps;
}
public List<String> getAnnotations() {
return annotations;
}
public void setAnnotations(List<String> annotations) {
this.annotations = annotations;
}
public List<FieldDefinition> getFields() {
return fields;
}
public void setFields(List<FieldDefinition> fields) {
this.fields = fields;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof DomainClassDefinition)) {
return false;
}
DomainClassDefinition that = (DomainClassDefinition) o;
if (!getPkg().equals(that.getPkg())) {
return false;
}
return getName().equals(that.getName());
}
@Override
public int hashCode() {
int result = getPkg().hashCode();
result = 31 * result + getName().hashCode();
return result;
}
}