package jef.database.meta;
import java.lang.annotation.Annotation;
import javax.persistence.ForeignKey;
import javax.persistence.JoinColumn;
public class JoinColumnImpl implements javax.persistence.JoinColumn {
private String name;
private String referencedColumnName;
private boolean nullable;
private boolean unique;
private boolean insertable;
private boolean updateable;
private String columnDefinition;
private String table;
public JoinColumnImpl() {
}
public JoinColumnImpl(JoinColumn source) {
this.name = source.name();
this.referencedColumnName = source.referencedColumnName();
this.nullable = source.nullable();
this.insertable = source.insertable();
this.updateable = source.updatable();
this.unique = source.unique();
this.columnDefinition = source.columnDefinition();
this.table = source.table();
}
@Override
public Class<? extends Annotation> annotationType() {
return JoinColumn.class;
}
@Override
public String name() {
return name;
}
@Override
public String referencedColumnName() {
return referencedColumnName;
}
@Override
public boolean unique() {
return unique;
}
@Override
public boolean nullable() {
return nullable;
}
@Override
public boolean insertable() {
return insertable;
}
@Override
public boolean updatable() {
return updateable;
}
@Override
public String columnDefinition() {
return columnDefinition;
}
@Override
public String table() {
return table;
}
public void reverseColumn() {
String col = this.referencedColumnName;
this.referencedColumnName = this.name;
this.name = col;
}
@Override
public ForeignKey foreignKey() {
//TODO
return null;
}
}