View Javadoc

1   package org.kuali.common.impex.model.util;
2   
3   import org.kuali.common.impex.model.Column;
4   import org.kuali.common.impex.model.Index;
5   import org.kuali.common.impex.model.Schema;
6   import org.kuali.common.impex.model.Table;
7   import org.kuali.common.impex.model.DataTypeSize;
8   import org.kuali.common.util.CollectionUtils;
9   import org.kuali.common.util.nullify.Nullifier;
10  import org.springframework.util.Assert;
11  
12  /**
13   * Null out values in a <code>schema</code> that are not needed when converting it to XML
14   */
15  public class SchemaNullifier implements Nullifier {
16  
17  	Schema schema;
18  
19  	public SchemaNullifier() {
20  		this(null);
21  	}
22  
23  	public SchemaNullifier(Schema schema) {
24  		super();
25  		this.schema = schema;
26  	}
27  
28  	@Override
29  	public void nullify() {
30  		Assert.notNull(schema, "schema is null");
31  		for (Table table : CollectionUtils.toEmptyList(schema.getTables())) {
32  			for (Column column : CollectionUtils.toEmptyList(table.getColumns())) {
33  				nullify(column);
34  			}
35  			for (Index index : CollectionUtils.toEmptyList(table.getIndices())) {
36  				nullify(index);
37  			}
38  		}
39  	}
40  
41  	protected void nullify(Index index) {
42  		if (Index.DEFAULT_UNIQUE_VALUE.equals(index.isUnique())) {
43  			index.setUnique(null);
44  		}
45  	}
46  
47  	protected void nullify(Column column) {
48  		if (Column.DEFAULT_NULLABLE_VALUE.equals(column.isNullable())) {
49  			column.setNullable(null);
50  		}
51  
52  		if (Column.DEFAULT_PRIMARY_KEY_VALUE.equals(column.isPrimaryKey())) {
53  			column.setPrimaryKey(null);
54  		}
55  
56  		DataTypeSize typeSize = column.getSize();
57  		if (typeSize != null && DataTypeSize.DEFAULT_SCALE_SET.equals(typeSize.isScaleSet())) {
58  			typeSize.setScaleSet(null);
59  		}
60  	}
61  
62  	public Schema getSchema() {
63  		return schema;
64  	}
65  
66  	public void setSchema(Schema schema) {
67  		this.schema = schema;
68  	}
69  
70  }