if(method.isAnnotationPresent(Column.class)) {
name = (method.getAnnotation(Column.class)).name();
}
//find column
ColumnMetadata column = findColumnMetadata(metadata, method);
if(column == null) {
column = new ColumnMetadata();
}
updateColumn(metadata, column, method, name);
saveColumn(metadata, column, method, name);
saveSetter(metadata, column, method, name);
column.setIdentifier(Boolean.TRUE);
contextHolder.getDelegate().setIdentityColumn(column);
}
else if(ann instanceof Column) {
//name
String name = ((Column)ann).name();
//find column
ColumnMetadata column = findColumnMetadata(metadata, method);
if(column == null) {
column = new ColumnMetadata();
}
updateColumn(metadata, column, method, name);
saveColumn(metadata, column, method, name);
saveSetter(metadata, column, method, name);
}
else if(ann instanceof OneToOne || ann instanceof OneToMany) {
//name
String name = null;
if(method.isAnnotationPresent(Column.class)) {
name = (method.getAnnotation(Column.class)).name();
}
ColumnRelationshipMetadata column = findColumnMetadata(
metadata, method);
if(column == null) {
column = new ColumnRelationshipMetadata();
}
updateColumn(metadata, column, method, name);
saveSetter(metadata, column, method, name);
//determine relation
Relationship relationship = null;
if(ann instanceof OneToOne) {
relationship = Relationship.ONE_TO_ONE;
}
else if(ann instanceof OneToMany) {
relationship = Relationship.ONE_TO_MANY;
column.setMappedBy(((OneToMany) ann).mappedBy());
}
else {
relationship = Relationship.NONE;
}