=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/organisationunit/hibernate/OrganisationUnit.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/organisationunit/hibernate/OrganisationUnit.hbm.xml 2014-02-18 11:58:08 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/organisationunit/hibernate/OrganisationUnit.hbm.xml 2014-02-18 13:11:50 +0000 @@ -40,7 +40,7 @@ - + === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/utils/CsvObjectUtils.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/utils/CsvObjectUtils.java 2014-02-18 11:58:08 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/utils/CsvObjectUtils.java 2014-02-18 13:11:50 +0000 @@ -133,17 +133,17 @@ { DataElement object = new DataElement(); setIdentifiableObject( object, values ); - object.setShortName( getSafe( values, 3, StringUtils.substring( object.getName(), 0, 50 ) ) ); - object.setDescription( getSafe( values, 4, null ) ); - object.setFormName( getSafe( values, 5, null ) ); + object.setShortName( getSafe( values, 3, object.getName(), 50 ) ); + object.setDescription( getSafe( values, 4, null, null ) ); + object.setFormName( getSafe( values, 5, null, 230 ) ); object.setActive( true ); - object.setDomainType( getSafe( values, 6, DataElement.DOMAIN_TYPE_AGGREGATE ) ); - object.setType( getSafe( values, 7, DataElement.VALUE_TYPE_INT ) ); - object.setNumberType( getSafe( values, 8, DataElement.VALUE_TYPE_NUMBER ) ); - object.setTextType( getSafe( values, 9, null ) ); - object.setAggregationOperator( getSafe( values, 10, DataElement.AGGREGATION_OPERATOR_SUM ) ); - object.setUrl( getSafe( values, 11, null ) ); - object.setZeroIsSignificant( Boolean.valueOf( getSafe( values, 12, "false" ) ) ); + object.setDomainType( getSafe( values, 6, DataElement.DOMAIN_TYPE_AGGREGATE, 16 ) ); + object.setType( getSafe( values, 7, DataElement.VALUE_TYPE_INT, 16 ) ); + object.setNumberType( getSafe( values, 8, DataElement.VALUE_TYPE_NUMBER, 16 ) ); + object.setTextType( getSafe( values, 9, null, 16 ) ); + object.setAggregationOperator( getSafe( values, 10, DataElement.AGGREGATION_OPERATOR_SUM, 16 ) ); + object.setUrl( getSafe( values, 11, null, 255 ) ); + object.setZeroIsSignificant( Boolean.valueOf( getSafe( values, 12, "false", null ) ) ); list.add( object ); } @@ -165,20 +165,20 @@ { OrganisationUnit object = new OrganisationUnit(); setIdentifiableObject( object, values ); - object.setShortName( getSafe( values, 3, StringUtils.substring( object.getName(), 0, 50 ) ) ); - object.setDescription( getSafe( values, 4, null ) ); - object.setUuid( getSafe( values, 5, null ) ); - object.setOpeningDate( getMediumDate( getSafe( values, 6, "1970-01-01" ) ) ); - object.setClosedDate( getMediumDate( getSafe( values, 7, "1970-01-01" ) ) ); - object.setActive( true); - object.setComment( getSafe( values, 8, null ) ); - object.setFeatureType( getSafe( values, 9, null ) ); - object.setCoordinates( getSafe( values, 10, null ) ); - object.setUrl( getSafe( values, 11, null ) ); - object.setContactPerson( getSafe( values, 12, null ) ); - object.setAddress( getSafe( values, 13, null ) ); - object.setEmail( getSafe( values, 14, null ) ); - object.setPhoneNumber( getSafe( values, 15, null ) ); + object.setShortName( getSafe( values, 3, object.getName(), 50 ) ); + object.setDescription( getSafe( values, 4, null, null ) ); + object.setUuid( getSafe( values, 5, null, 36 ) ); + object.setOpeningDate( getMediumDate( getSafe( values, 6, "1970-01-01", null ) ) ); + object.setClosedDate( getMediumDate( getSafe( values, 7, "1970-01-01", null ) ) ); + object.setActive( true ); + object.setComment( getSafe( values, 8, null, null ) ); + object.setFeatureType( getSafe( values, 9, null, 50 ) ); + object.setCoordinates( getSafe( values, 10, null, null ) ); + object.setUrl( getSafe( values, 11, null, 255 ) ); + object.setContactPerson( getSafe( values, 12, null, 255 ) ); + object.setAddress( getSafe( values, 13, null, 255 ) ); + object.setEmail( getSafe( values, 14, null, 150 ) ); + object.setPhoneNumber( getSafe( values, 15, null, 150 ) ); list.add( object ); } @@ -189,20 +189,37 @@ private static void setIdentifiableObject( BaseIdentifiableObject object, String[] values ) { - object.setName( getSafe( values, 0, null ) ); - object.setUid( getSafe( values, 1, CodeGenerator.generateCode() ) ); - object.setCode( getSafe( values, 2, null ) ); + object.setName( getSafe( values, 0, null, 230 ) ); + object.setUid( getSafe( values, 1, CodeGenerator.generateCode(), 11 ) ); + object.setCode( getSafe( values, 2, null, 50 ) ); } - private static final String getSafe( String[] values, int index, String defaultValue ) + /** + * Returns a string from the given array avoiding exceptions. + * + * @param values the string array. + * @param index the array index of the string to get. + * @param defaultValue the default value in case index is out of bounds. + * @param max the max number of characters to return for the string. + */ + private static String getSafe( String[] values, int index, String defaultValue, Integer max ) { + String string = null; + if ( values == null || index < 0 || index >= values.length ) { - return defaultValue; - } - - String value = values[index]; - - return value != null ? value : defaultValue; + string = defaultValue; + } + else + { + string = values[index]; + } + + if ( string != null ) + { + return max != null ? StringUtils.substring( string, 0, max ) : string; + } + + return null; } }