1
package org.hisp.dhis.jdbc.batchhandler;
4
* Copyright (c) 2004-2007, University of Oslo
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* * Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
* * Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
* * Neither the name of the HISP project nor the names of its contributors may
15
* be used to endorse or promote products derived from this software without
16
* specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
import java.util.HashMap;
33
import org.hisp.dhis.jdbc.JDBCConfiguration;
34
import org.hisp.dhis.datadictionary.ExtendedDataElement;
35
import org.hisp.dhis.dataelement.DataElement;
38
* @author Lars Helge Overland
39
* @version $Id: ExtendedDataElementBatchHandler.java 5805 2008-10-03 13:16:15Z larshelg $
41
public class ExtendedDataElementBatchHandler
42
extends AbstractBatchHandler
44
// -------------------------------------------------------------------------
46
// -------------------------------------------------------------------------
48
public ExtendedDataElementBatchHandler( JDBCConfiguration configuration )
50
super( configuration );
52
hasSinglePrimaryKey = false;
55
// -------------------------------------------------------------------------
56
// AbstractBatchHandler implementation
57
// -------------------------------------------------------------------------
59
protected void setTableName()
61
this.tableName = "extendeddataelement";
64
protected void openSqlStatement()
66
statementBuilder.setAutoIncrementColumnIndex( 0 );
67
statementBuilder.setAutoIncrementColumnName( "extendeddataelementid" );
71
sqlBuffer.append( statementBuilder.getInsertStatementOpening( tableName ) );
74
protected String getUpdateSqlStatement( Object object )
76
ExtendedDataElement dataElement = (ExtendedDataElement) object;
78
statementBuilder.setIdentifierColumnName( "extendeddataelementid" );
79
statementBuilder.setIdentifierColumnValue( dataElement.getId() );
85
return statementBuilder.getUpdateStatement( tableName );
88
protected String getIdentifierStatement( Object objectName )
90
return statementBuilder.getValueStatement( "dataelement", "dataelementid", "name", String.valueOf( objectName ) );
93
protected String getUniquenessStatement( Object object )
95
DataElement dataElement = (DataElement) object;
97
Map<String, String> map = new HashMap<String, String>();
99
map.put( "name", dataElement.getName() );
100
map.put( "shortname", dataElement.getShortName() );
101
map.put( "code", dataElement.getCode() );
102
map.put( "alternativename", dataElement.getAlternativeName() );
104
return statementBuilder.getValueStatement( "dataelement", "dataelementid", map, false );
107
protected void addColumns()
109
statementBuilder.setColumn( "mnemonic" );
110
statementBuilder.setColumn( "version" );
111
statementBuilder.setColumn( "context" );
112
statementBuilder.setColumn( "synonyms" );
113
statementBuilder.setColumn( "hononyms" );
114
statementBuilder.setColumn( "keywords" );
115
statementBuilder.setColumn( "status" );
116
statementBuilder.setColumn( "statusDate" );
117
statementBuilder.setColumn( "dataElementType" );
119
statementBuilder.setColumn( "dataType" );
120
statementBuilder.setColumn( "representationalForm" );
121
statementBuilder.setColumn( "representationalLayout" );
122
statementBuilder.setColumn( "minimumSize" );
123
statementBuilder.setColumn( "maximumSize" );
124
statementBuilder.setColumn( "dataDomain" );
125
statementBuilder.setColumn( "validationRules" );
126
statementBuilder.setColumn( "relatedDataReferences" );
127
statementBuilder.setColumn( "guideForUse" );
128
statementBuilder.setColumn( "collectionMethods" );
130
statementBuilder.setColumn( "responsibleAuthority" );
131
statementBuilder.setColumn( "updateRules" );
132
statementBuilder.setColumn( "accessAuthority" );
133
statementBuilder.setColumn( "updateFrequency" );
134
statementBuilder.setColumn( "location" );
135
statementBuilder.setColumn( "reportingMethods" );
136
statementBuilder.setColumn( "versionStatus" );
137
statementBuilder.setColumn( "previousVersionReferences" );
138
statementBuilder.setColumn( "sourceDocument" );
139
statementBuilder.setColumn( "sourceOrganisation" );
140
statementBuilder.setColumn( "comment" );
141
statementBuilder.setColumn( "saved" );
142
statementBuilder.setColumn( "lastUpdated" );
145
protected void addValues( Object object )
147
ExtendedDataElement element = (ExtendedDataElement) object;
149
statementBuilder.setString( element.getMnemonic() );
150
statementBuilder.setString( element.getVersion() );
151
statementBuilder.setString( element.getContext() );
152
statementBuilder.setString( element.getSynonyms() );
153
statementBuilder.setString( element.getHononyms() );
154
statementBuilder.setString( element.getKeywords() );
155
statementBuilder.setString( element.getStatus() );
156
statementBuilder.setDate( element.getStatusDate() );
157
statementBuilder.setString( element.getDataElementType() );
159
statementBuilder.setString( element.getDataType() );
160
statementBuilder.setString( element.getRepresentationalForm() );
161
statementBuilder.setString( element.getRepresentationalLayout() );
162
statementBuilder.setInt( element.getMinimumSize() );
163
statementBuilder.setInt( element.getMaximumSize() );
164
statementBuilder.setString( element.getDataDomain() );
165
statementBuilder.setString( element.getValidationRules() );
166
statementBuilder.setString( element.getRelatedDataReferences() );
167
statementBuilder.setString( element.getGuideForUse() );
168
statementBuilder.setString( element.getCollectionMethods() );
170
statementBuilder.setString( element.getResponsibleAuthority() );
171
statementBuilder.setString( element.getUpdateRules() );
172
statementBuilder.setString( element.getAccessAuthority() );
173
statementBuilder.setString( element.getUpdateFrequency() );
174
statementBuilder.setString( element.getLocation() );
175
statementBuilder.setString( element.getReportingMethods() );
176
statementBuilder.setString( element.getVersionStatus() );
177
statementBuilder.setString( element.getPreviousVersionReferences() );
178
statementBuilder.setString( element.getSourceDocument() );
179
statementBuilder.setString( element.getSourceOrganisation() );
180
statementBuilder.setString( element.getComment() );
181
statementBuilder.setDate( element.getSaved() );
182
statementBuilder.setDate( element.getLastUpdated() );