@Override
 public void update(IProgressMonitor monitor) {
   super.update(monitor);
   this.setDefaultTableName(this.buildDefaultTableName());
   this.setDefaultUnique(this.buildDefaultUnique());
   this.setDefaultNullable(this.buildDefaultNullable());
   this.setDefaultInsertable(this.buildDefaultInsertable());
   this.setDefaultUpdatable(this.buildDefaultUpdatable());
 }
 @Override
 protected void initialize(A columnAnnotation) {
   super.initialize(columnAnnotation);
   this.specifiedTableName = this.buildSpecifiedTableName(columnAnnotation);
   this.specifiedUnique = this.buildSpecifiedUnique(columnAnnotation);
   this.specifiedNullable = this.buildSpecifiedNullable(columnAnnotation);
   this.specifiedInsertable = this.buildSpecifiedInsertable(columnAnnotation);
   this.specifiedUpdatable = this.buildSpecifiedUpdatable(columnAnnotation);
 }
 @Override
 protected void synchronizeWithResourceModel(A columnAnnotation) {
   super.synchronizeWithResourceModel(columnAnnotation);
   this.setSpecifiedTableName_(this.buildSpecifiedTableName(columnAnnotation));
   this.setSpecifiedUnique_(this.buildSpecifiedUnique(columnAnnotation));
   this.setSpecifiedNullable_(this.buildSpecifiedNullable(columnAnnotation));
   this.setSpecifiedInsertable_(this.buildSpecifiedInsertable(columnAnnotation));
   this.setSpecifiedUpdatable_(this.buildSpecifiedUpdatable(columnAnnotation));
 }
 protected void initializeFrom(VirtualBaseColumn virtualColumn) {
   super.initializeFrom(virtualColumn);
   this.setSpecifiedTableName(virtualColumn.getTableName());
   // ignore other settings?
 }