metadata_generator.rasterjob_0_1.RasterJob.java Source code

Java tutorial

Introduction

Here is the source code for metadata_generator.rasterjob_0_1.RasterJob.java

Source

// ============================================================================
//
// Copyright (c) 2006-2014, Talend Inc.
//
// This source code has been automatically generated by_Talend Open Studio for Data Integration
// / Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package metadata_generator.rasterjob_0_1;

import routines.DataOperation;
import routines.OpenStreetMap;
import routines.TalendDataGenerator;
import routines.Numeric;
import routines.GeometryUtility;
import routines.GeoOperation;
import routines.ExtractorStringUtils;
import routines.Utility;
import routines.Mathematical;
import routines.Relational;
import routines.TalendDate;
import routines.GeometryOperation;
import routines.TalendString;
import routines.StringHandling;
import routines.system.*;
import routines.system.api.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.IOException;
import java.util.Comparator;

//the import part of sGdalInfoInput_2
import org.talend.sdi.geometry.Geometry;

@SuppressWarnings("unused")
/**
 * Job: RasterJob Purpose: Scan directory for raster files and generate their metadata<br>
 * Description:  <br>
 * @author test@talend.com
 * @version 5.6.0.20141024_1545
 * @status 
 */
public class RasterJob implements TalendJob {

    public final Object obj = new Object();

    // for transmiting parameters purpose
    private Object valueObject = null;

    public Object getValueObject() {
        return this.valueObject;
    }

    public void setValueObject(Object valueObject) {
        this.valueObject = valueObject;
    }

    private final static String defaultCharset = java.nio.charset.Charset.defaultCharset().name();

    private final static String utf8Charset = "UTF-8";

    // create and load default properties
    private java.util.Properties defaultProps = new java.util.Properties();

    // create application properties with default
    public class ContextProperties extends java.util.Properties {

        private static final long serialVersionUID = 1L;

        public ContextProperties(java.util.Properties properties) {
            super(properties);
        }

        public ContextProperties() {
            super();
        }

        public void synchronizeContext() {

            if (file != null) {

                this.setProperty("file", file.toString());

            }

            if (administrativeArea != null) {

                this.setProperty("administrativeArea", administrativeArea.toString());

            }

            if (city != null) {

                this.setProperty("city", city.toString());

            }

            if (country != null) {

                this.setProperty("country", country.toString());

            }

            if (dataDir != null) {

                this.setProperty("dataDir", dataDir.toString());

            }

            if (defaultProjection != null) {

                this.setProperty("defaultProjection", defaultProjection.toString());

            }

            if (defaultXMax != null) {

                this.setProperty("defaultXMax", defaultXMax.toString());

            }

            if (defaultXMin != null) {

                this.setProperty("defaultXMin", defaultXMin.toString());

            }

            if (defaultYMax != null) {

                this.setProperty("defaultYMax", defaultYMax.toString());

            }

            if (defaultYMin != null) {

                this.setProperty("defaultYMin", defaultYMin.toString());

            }

            if (deliveryPoint != null) {

                this.setProperty("deliveryPoint", deliveryPoint.toString());

            }

            if (email != null) {

                this.setProperty("email", email.toString());

            }

            if (generateMetadataInSeparateDir != null) {

                this.setProperty("generateMetadataInSeparateDir", generateMetadataInSeparateDir.toString());

            }

            if (individualName != null) {

                this.setProperty("individualName", individualName.toString());

            }

            if (logDirectory != null) {

                this.setProperty("logDirectory", logDirectory.toString());

            }

            if (mdAdministrativeArea != null) {

                this.setProperty("mdAdministrativeArea", mdAdministrativeArea.toString());

            }

            if (mdCity != null) {

                this.setProperty("mdCity", mdCity.toString());

            }

            if (mdCountry != null) {

                this.setProperty("mdCountry", mdCountry.toString());

            }

            if (mdDeliveryPoint != null) {

                this.setProperty("mdDeliveryPoint", mdDeliveryPoint.toString());

            }

            if (mdEmail != null) {

                this.setProperty("mdEmail", mdEmail.toString());

            }

            if (mdIndividualName != null) {

                this.setProperty("mdIndividualName", mdIndividualName.toString());

            }

            if (mdOrganisation != null) {

                this.setProperty("mdOrganisation", mdOrganisation.toString());

            }

            if (mdPositionName != null) {

                this.setProperty("mdPositionName", mdPositionName.toString());

            }

            if (mdPostalCode != null) {

                this.setProperty("mdPostalCode", mdPostalCode.toString());

            }

            if (mdVoice != null) {

                this.setProperty("mdVoice", mdVoice.toString());

            }

            if (metadataDir != null) {

                this.setProperty("metadataDir", metadataDir.toString());

            }

            if (organisationName != null) {

                this.setProperty("organisationName", organisationName.toString());

            }

            if (positionName != null) {

                this.setProperty("positionName", positionName.toString());

            }

            if (postalCode != null) {

                this.setProperty("postalCode", postalCode.toString());

            }

            if (rasterExtensions != null) {

                this.setProperty("rasterExtensions", rasterExtensions.toString());

            }

            if (resourceDir != null) {

                this.setProperty("resourceDir", resourceDir.toString());

            }

            if (scanRaster != null) {

                this.setProperty("scanRaster", scanRaster.toString());

            }

            if (scanVector != null) {

                this.setProperty("scanVector", scanVector.toString());

            }

            if (titlePrefixRaster != null) {

                this.setProperty("titlePrefixRaster", titlePrefixRaster.toString());

            }

            if (titlePrefixVector != null) {

                this.setProperty("titlePrefixVector", titlePrefixVector.toString());

            }

            if (vectorExtensions != null) {

                this.setProperty("vectorExtensions", vectorExtensions.toString());

            }

            if (voice != null) {

                this.setProperty("voice", voice.toString());

            }

        }

        public String file;

        public String getFile() {
            return this.file;
        }

        public String administrativeArea;

        public String getAdministrativeArea() {
            return this.administrativeArea;
        }

        public String city;

        public String getCity() {
            return this.city;
        }

        public String country;

        public String getCountry() {
            return this.country;
        }

        public String dataDir;

        public String getDataDir() {
            return this.dataDir;
        }

        public String defaultProjection;

        public String getDefaultProjection() {
            return this.defaultProjection;
        }

        public String defaultXMax;

        public String getDefaultXMax() {
            return this.defaultXMax;
        }

        public String defaultXMin;

        public String getDefaultXMin() {
            return this.defaultXMin;
        }

        public String defaultYMax;

        public String getDefaultYMax() {
            return this.defaultYMax;
        }

        public String defaultYMin;

        public String getDefaultYMin() {
            return this.defaultYMin;
        }

        public String deliveryPoint;

        public String getDeliveryPoint() {
            return this.deliveryPoint;
        }

        public String email;

        public String getEmail() {
            return this.email;
        }

        public Boolean generateMetadataInSeparateDir;

        public Boolean getGenerateMetadataInSeparateDir() {
            return this.generateMetadataInSeparateDir;
        }

        public String individualName;

        public String getIndividualName() {
            return this.individualName;
        }

        public String logDirectory;

        public String getLogDirectory() {
            return this.logDirectory;
        }

        public String mdAdministrativeArea;

        public String getMdAdministrativeArea() {
            return this.mdAdministrativeArea;
        }

        public String mdCity;

        public String getMdCity() {
            return this.mdCity;
        }

        public String mdCountry;

        public String getMdCountry() {
            return this.mdCountry;
        }

        public String mdDeliveryPoint;

        public String getMdDeliveryPoint() {
            return this.mdDeliveryPoint;
        }

        public String mdEmail;

        public String getMdEmail() {
            return this.mdEmail;
        }

        public String mdIndividualName;

        public String getMdIndividualName() {
            return this.mdIndividualName;
        }

        public String mdOrganisation;

        public String getMdOrganisation() {
            return this.mdOrganisation;
        }

        public String mdPositionName;

        public String getMdPositionName() {
            return this.mdPositionName;
        }

        public String mdPostalCode;

        public String getMdPostalCode() {
            return this.mdPostalCode;
        }

        public String mdVoice;

        public String getMdVoice() {
            return this.mdVoice;
        }

        public String metadataDir;

        public String getMetadataDir() {
            return this.metadataDir;
        }

        public String organisationName;

        public String getOrganisationName() {
            return this.organisationName;
        }

        public String positionName;

        public String getPositionName() {
            return this.positionName;
        }

        public String postalCode;

        public String getPostalCode() {
            return this.postalCode;
        }

        public String rasterExtensions;

        public String getRasterExtensions() {
            return this.rasterExtensions;
        }

        public String resourceDir;

        public String getResourceDir() {
            return this.resourceDir;
        }

        public Boolean scanRaster;

        public Boolean getScanRaster() {
            return this.scanRaster;
        }

        public Boolean scanVector;

        public Boolean getScanVector() {
            return this.scanVector;
        }

        public String titlePrefixRaster;

        public String getTitlePrefixRaster() {
            return this.titlePrefixRaster;
        }

        public String titlePrefixVector;

        public String getTitlePrefixVector() {
            return this.titlePrefixVector;
        }

        public String vectorExtensions;

        public String getVectorExtensions() {
            return this.vectorExtensions;
        }

        public String voice;

        public String getVoice() {
            return this.voice;
        }
    }

    private ContextProperties context = new ContextProperties();

    public ContextProperties getContext() {
        return this.context;
    }

    private final String jobVersion = "0.1";
    private final String jobName = "RasterJob";
    private final String projectName = "METADATA_GENERATOR";
    public Integer errorCode = null;
    private String currentComponent = "";

    private final java.util.Map<String, Object> globalMap = new java.util.HashMap<String, Object>();

    private final java.util.Map<String, Long> start_Hash = new java.util.HashMap<String, Long>();
    private final java.util.Map<String, Long> end_Hash = new java.util.HashMap<String, Long>();
    private final java.util.Map<String, Boolean> ok_Hash = new java.util.HashMap<String, Boolean>();
    public final java.util.List<String[]> globalBuffer = new java.util.ArrayList<String[]>();

    public boolean isExportedAsOSGI = false;

    // OSGi DataSource
    private final static String KEY_DB_DATASOURCES = "KEY_DB_DATASOURCES";

    public void setDataSources(java.util.Map<String, javax.sql.DataSource> dataSources) {
        java.util.Map<String, routines.system.TalendDataSource> talendDataSources = new java.util.HashMap<String, routines.system.TalendDataSource>();
        for (java.util.Map.Entry<String, javax.sql.DataSource> dataSourceEntry : dataSources.entrySet()) {
            talendDataSources.put(dataSourceEntry.getKey(),
                    new routines.system.TalendDataSource(dataSourceEntry.getValue()));
        }
        globalMap.put(KEY_DB_DATASOURCES, talendDataSources);
    }

    private final java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
    private final java.io.PrintStream errorMessagePS = new java.io.PrintStream(
            new java.io.BufferedOutputStream(baos));

    public String getExceptionStackTrace() {
        if ("failure".equals(this.getStatus())) {
            errorMessagePS.flush();
            return baos.toString();
        }
        return null;
    }

    private java.lang.Exception exception = null;

    public java.lang.Exception getException() {
        if ("failure".equals(this.getStatus())) {
            return this.exception;
        }
        return null;
    }

    private class TalendException extends java.lang.Exception {

        private static final long serialVersionUID = 1L;

        private java.util.Map<String, Object> globalMap = null;
        private java.lang.Exception e = null;
        private String currentComponent = null;
        private String virtualComponentName = null;

        public void setVirtualComponentName(String virtualComponentName) {
            this.virtualComponentName = virtualComponentName;
        }

        private TalendException(java.lang.Exception e, String errorComponent,
                final java.util.Map<String, Object> globalMap) {
            this.currentComponent = errorComponent;
            this.globalMap = globalMap;
            this.e = e;
        }

        public java.lang.Exception getException() {
            return this.e;
        }

        public String getCurrentComponent() {
            return this.currentComponent;
        }

        public String getExceptionCauseMessage(java.lang.Exception e) {
            Throwable cause = e;
            String message = null;
            int i = 10;
            while (null != cause && 0 < i--) {
                message = cause.getMessage();
                if (null == message) {
                    cause = cause.getCause();
                } else {
                    break;
                }
            }
            if (null == message) {
                message = e.getClass().getName();
            }
            return message;
        }

        @Override
        public void printStackTrace() {
            if (!(e instanceof TalendException || e instanceof TDieException)) {
                if (virtualComponentName != null && currentComponent.indexOf(virtualComponentName + "_") == 0) {
                    globalMap.put(virtualComponentName + "_ERROR_MESSAGE", getExceptionCauseMessage(e));
                }
                globalMap.put(currentComponent + "_ERROR_MESSAGE", getExceptionCauseMessage(e));
                System.err.println("Exception in component " + currentComponent);
            }
            if (!(e instanceof TDieException)) {
                if (e instanceof TalendException) {
                    e.printStackTrace();
                } else {
                    e.printStackTrace();
                    e.printStackTrace(errorMessagePS);
                    RasterJob.this.exception = e;
                }
            }
            if (!(e instanceof TalendException)) {
                try {
                    for (java.lang.reflect.Method m : this.getClass().getEnclosingClass().getMethods()) {
                        if (m.getName().compareTo(currentComponent + "_error") == 0) {
                            m.invoke(RasterJob.this, new Object[] { e, currentComponent, globalMap });
                            break;
                        }
                    }

                    if (!(e instanceof TDieException)) {
                    }
                } catch (java.lang.SecurityException e) {
                    this.e.printStackTrace();
                } catch (java.lang.IllegalArgumentException e) {
                    this.e.printStackTrace();
                } catch (java.lang.IllegalAccessException e) {
                    this.e.printStackTrace();
                } catch (java.lang.reflect.InvocationTargetException e) {
                    this.e.printStackTrace();
                }
            }
        }
    }

    public void sGdalInfoInput_2_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        sGdalInfoInput_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tMap_1_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        sGdalInfoInput_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tNormalize_2_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        sGdalInfoInput_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tExtractDelimitedFields_1_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        sGdalInfoInput_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tLogRow_2_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        sGdalInfoInput_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tAdvancedFileOutputXML_2_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        sGdalInfoInput_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tWarn_1_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        status = "failure";

        tWarn_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tWarn_2_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        status = "failure";

        tWarn_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tDie_1_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        status = "failure";

        tDie_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tFileInputDelimited_1_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        status = "failure";

        tFileInputDelimited_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tAdvancedHash_properties_error(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        end_Hash.put(errorComponent, System.currentTimeMillis());

        status = "failure";

        tFileInputDelimited_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void sGdalInfoInput_2_onSubJobError(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        resumeUtil.addLog("SYSTEM_LOG", "NODE:" + errorComponent, "", Thread.currentThread().getId() + "", "ERROR",
                "", exception.getMessage(), ResumeUtil.getExceptionStackTrace(exception), "");

        try {

            errorCode = null;
            tWarn_2Process(globalMap);
            if (!"failure".equals(status)) {
                status = "end";
            }
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }
    }

    public void tWarn_1_onSubJobError(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        resumeUtil.addLog("SYSTEM_LOG", "NODE:" + errorComponent, "", Thread.currentThread().getId() + "", "FATAL",
                "", exception.getMessage(), ResumeUtil.getExceptionStackTrace(exception), "");

    }

    public void tWarn_2_onSubJobError(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        resumeUtil.addLog("SYSTEM_LOG", "NODE:" + errorComponent, "", Thread.currentThread().getId() + "", "FATAL",
                "", exception.getMessage(), ResumeUtil.getExceptionStackTrace(exception), "");

    }

    public void tDie_1_onSubJobError(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        resumeUtil.addLog("SYSTEM_LOG", "NODE:" + errorComponent, "", Thread.currentThread().getId() + "", "FATAL",
                "", exception.getMessage(), ResumeUtil.getExceptionStackTrace(exception), "");

    }

    public void tFileInputDelimited_1_onSubJobError(java.lang.Exception exception, String errorComponent,
            final java.util.Map<String, Object> globalMap) throws TalendException {

        resumeUtil.addLog("SYSTEM_LOG", "NODE:" + errorComponent, "", Thread.currentThread().getId() + "", "FATAL",
                "", exception.getMessage(), ResumeUtil.getExceptionStackTrace(exception), "");

    }

    public static class row3Struct implements routines.system.IPersistableRow<row3Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_RasterJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_RasterJob = new byte[0];

        public String mdIdentifier;

        public String getMdIdentifier() {
            return this.mdIdentifier;
        }

        public String mdLanguage;

        public String getMdLanguage() {
            return this.mdLanguage;
        }

        public String mdCharacterSetCode;

        public String getMdCharacterSetCode() {
            return this.mdCharacterSetCode;
        }

        public String ciRoleCode;

        public String getCiRoleCode() {
            return this.ciRoleCode;
        }

        public String mdOrganisation;

        public String getMdOrganisation() {
            return this.mdOrganisation;
        }

        public String mdVoice;

        public String getMdVoice() {
            return this.mdVoice;
        }

        public String mdIndividualName;

        public String getMdIndividualName() {
            return this.mdIndividualName;
        }

        public String mdPositionName;

        public String getMdPositionName() {
            return this.mdPositionName;
        }

        public String mdDeliveryPoint;

        public String getMdDeliveryPoint() {
            return this.mdDeliveryPoint;
        }

        public String mdCity;

        public String getMdCity() {
            return this.mdCity;
        }

        public String mdAdministrativeArea;

        public String getMdAdministrativeArea() {
            return this.mdAdministrativeArea;
        }

        public String mdPostalCode;

        public String getMdPostalCode() {
            return this.mdPostalCode;
        }

        public String mdCountry;

        public String getMdCountry() {
            return this.mdCountry;
        }

        public String mdEmail;

        public String getMdEmail() {
            return this.mdEmail;
        }

        public String mdDate;

        public String getMdDate() {
            return this.mdDate;
        }

        public String title;

        public String getTitle() {
            return this.title;
        }

        public String organisationName;

        public String getOrganisationName() {
            return this.organisationName;
        }

        public String voice;

        public String getVoice() {
            return this.voice;
        }

        public String email;

        public String getEmail() {
            return this.email;
        }

        public String individualName;

        public String getIndividualName() {
            return this.individualName;
        }

        public String positionName;

        public String getPositionName() {
            return this.positionName;
        }

        public String deliveryPoint;

        public String getDeliveryPoint() {
            return this.deliveryPoint;
        }

        public String city;

        public String getCity() {
            return this.city;
        }

        public String administrativeArea;

        public String getAdministrativeArea() {
            return this.administrativeArea;
        }

        public String postalCode;

        public String getPostalCode() {
            return this.postalCode;
        }

        public String country;

        public String getCountry() {
            return this.country;
        }

        public String spatialRepresentationType;

        public String getSpatialRepresentationType() {
            return this.spatialRepresentationType;
        }

        public String scaleDenominator;

        public String getScaleDenominator() {
            return this.scaleDenominator;
        }

        public String topicCategoryCode;

        public String getTopicCategoryCode() {
            return this.topicCategoryCode;
        }

        public String west;

        public String getWest() {
            return this.west;
        }

        public String east;

        public String getEast() {
            return this.east;
        }

        public String south;

        public String getSouth() {
            return this.south;
        }

        public String north;

        public String getNorth() {
            return this.north;
        }

        public String mdMaintenanceFrequencyCode;

        public String getMdMaintenanceFrequencyCode() {
            return this.mdMaintenanceFrequencyCode;
        }

        public String keyword;

        public String getKeyword() {
            return this.keyword;
        }

        public String keyword2;

        public String getKeyword2() {
            return this.keyword2;
        }

        public String keyword1_theme;

        public String getKeyword1_theme() {
            return this.keyword1_theme;
        }

        public String keyword2_theme;

        public String getKeyword2_theme() {
            return this.keyword2_theme;
        }

        public String useConstraints;

        public String getUseConstraints() {
            return this.useConstraints;
        }

        public String scopeCode;

        public String getScopeCode() {
            return this.scopeCode;
        }

        public String lineage;

        public String getLineage() {
            return this.lineage;
        }

        public String srs;

        public String getSrs() {
            return this.srs;
        }

        public String columnsDef;

        public String getColumnsDef() {
            return this.columnsDef;
        }

        public String layerName;

        public String getLayerName() {
            return this.layerName;
        }

        public String bands;

        public String getBands() {
            return this.bands;
        }

        public String bandName;

        public String getBandName() {
            return this.bandName;
        }

        public String bandColorInterpret;

        public String getBandColorInterpret() {
            return this.bandColorInterpret;
        }

        private String readString(ObjectInputStream dis) throws IOException {
            String strReturn = null;
            int length = 0;
            length = dis.readInt();
            if (length == -1) {
                strReturn = null;
            } else {
                if (length > commonByteArray_METADATA_GENERATOR_RasterJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_RasterJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length, utf8Charset);
            }
            return strReturn;
        }

        private void writeString(String str, ObjectOutputStream dos) throws IOException {
            if (str == null) {
                dos.writeInt(-1);
            } else {
                byte[] byteArray = str.getBytes(utf8Charset);
                dos.writeInt(byteArray.length);
                dos.write(byteArray);
            }
        }

        public void readData(ObjectInputStream dis) {

            synchronized (commonByteArrayLock_METADATA_GENERATOR_RasterJob) {

                try {

                    int length = 0;

                    this.mdIdentifier = readString(dis);

                    this.mdLanguage = readString(dis);

                    this.mdCharacterSetCode = readString(dis);

                    this.ciRoleCode = readString(dis);

                    this.mdOrganisation = readString(dis);

                    this.mdVoice = readString(dis);

                    this.mdIndividualName = readString(dis);

                    this.mdPositionName = readString(dis);

                    this.mdDeliveryPoint = readString(dis);

                    this.mdCity = readString(dis);

                    this.mdAdministrativeArea = readString(dis);

                    this.mdPostalCode = readString(dis);

                    this.mdCountry = readString(dis);

                    this.mdEmail = readString(dis);

                    this.mdDate = readString(dis);

                    this.title = readString(dis);

                    this.organisationName = readString(dis);

                    this.voice = readString(dis);

                    this.email = readString(dis);

                    this.individualName = readString(dis);

                    this.positionName = readString(dis);

                    this.deliveryPoint = readString(dis);

                    this.city = readString(dis);

                    this.administrativeArea = readString(dis);

                    this.postalCode = readString(dis);

                    this.country = readString(dis);

                    this.spatialRepresentationType = readString(dis);

                    this.scaleDenominator = readString(dis);

                    this.topicCategoryCode = readString(dis);

                    this.west = readString(dis);

                    this.east = readString(dis);

                    this.south = readString(dis);

                    this.north = readString(dis);

                    this.mdMaintenanceFrequencyCode = readString(dis);

                    this.keyword = readString(dis);

                    this.keyword2 = readString(dis);

                    this.keyword1_theme = readString(dis);

                    this.keyword2_theme = readString(dis);

                    this.useConstraints = readString(dis);

                    this.scopeCode = readString(dis);

                    this.lineage = readString(dis);

                    this.srs = readString(dis);

                    this.columnsDef = readString(dis);

                    this.layerName = readString(dis);

                    this.bands = readString(dis);

                    this.bandName = readString(dis);

                    this.bandColorInterpret = readString(dis);

                } catch (IOException e) {
                    throw new RuntimeException(e);

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.mdIdentifier, dos);

                // String

                writeString(this.mdLanguage, dos);

                // String

                writeString(this.mdCharacterSetCode, dos);

                // String

                writeString(this.ciRoleCode, dos);

                // String

                writeString(this.mdOrganisation, dos);

                // String

                writeString(this.mdVoice, dos);

                // String

                writeString(this.mdIndividualName, dos);

                // String

                writeString(this.mdPositionName, dos);

                // String

                writeString(this.mdDeliveryPoint, dos);

                // String

                writeString(this.mdCity, dos);

                // String

                writeString(this.mdAdministrativeArea, dos);

                // String

                writeString(this.mdPostalCode, dos);

                // String

                writeString(this.mdCountry, dos);

                // String

                writeString(this.mdEmail, dos);

                // String

                writeString(this.mdDate, dos);

                // String

                writeString(this.title, dos);

                // String

                writeString(this.organisationName, dos);

                // String

                writeString(this.voice, dos);

                // String

                writeString(this.email, dos);

                // String

                writeString(this.individualName, dos);

                // String

                writeString(this.positionName, dos);

                // String

                writeString(this.deliveryPoint, dos);

                // String

                writeString(this.city, dos);

                // String

                writeString(this.administrativeArea, dos);

                // String

                writeString(this.postalCode, dos);

                // String

                writeString(this.country, dos);

                // String

                writeString(this.spatialRepresentationType, dos);

                // String

                writeString(this.scaleDenominator, dos);

                // String

                writeString(this.topicCategoryCode, dos);

                // String

                writeString(this.west, dos);

                // String

                writeString(this.east, dos);

                // String

                writeString(this.south, dos);

                // String

                writeString(this.north, dos);

                // String

                writeString(this.mdMaintenanceFrequencyCode, dos);

                // String

                writeString(this.keyword, dos);

                // String

                writeString(this.keyword2, dos);

                // String

                writeString(this.keyword1_theme, dos);

                // String

                writeString(this.keyword2_theme, dos);

                // String

                writeString(this.useConstraints, dos);

                // String

                writeString(this.scopeCode, dos);

                // String

                writeString(this.lineage, dos);

                // String

                writeString(this.srs, dos);

                // String

                writeString(this.columnsDef, dos);

                // String

                writeString(this.layerName, dos);

                // String

                writeString(this.bands, dos);

                // String

                writeString(this.bandName, dos);

                // String

                writeString(this.bandColorInterpret, dos);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("mdIdentifier=" + mdIdentifier);
            sb.append(",mdLanguage=" + mdLanguage);
            sb.append(",mdCharacterSetCode=" + mdCharacterSetCode);
            sb.append(",ciRoleCode=" + ciRoleCode);
            sb.append(",mdOrganisation=" + mdOrganisation);
            sb.append(",mdVoice=" + mdVoice);
            sb.append(",mdIndividualName=" + mdIndividualName);
            sb.append(",mdPositionName=" + mdPositionName);
            sb.append(",mdDeliveryPoint=" + mdDeliveryPoint);
            sb.append(",mdCity=" + mdCity);
            sb.append(",mdAdministrativeArea=" + mdAdministrativeArea);
            sb.append(",mdPostalCode=" + mdPostalCode);
            sb.append(",mdCountry=" + mdCountry);
            sb.append(",mdEmail=" + mdEmail);
            sb.append(",mdDate=" + mdDate);
            sb.append(",title=" + title);
            sb.append(",organisationName=" + organisationName);
            sb.append(",voice=" + voice);
            sb.append(",email=" + email);
            sb.append(",individualName=" + individualName);
            sb.append(",positionName=" + positionName);
            sb.append(",deliveryPoint=" + deliveryPoint);
            sb.append(",city=" + city);
            sb.append(",administrativeArea=" + administrativeArea);
            sb.append(",postalCode=" + postalCode);
            sb.append(",country=" + country);
            sb.append(",spatialRepresentationType=" + spatialRepresentationType);
            sb.append(",scaleDenominator=" + scaleDenominator);
            sb.append(",topicCategoryCode=" + topicCategoryCode);
            sb.append(",west=" + west);
            sb.append(",east=" + east);
            sb.append(",south=" + south);
            sb.append(",north=" + north);
            sb.append(",mdMaintenanceFrequencyCode=" + mdMaintenanceFrequencyCode);
            sb.append(",keyword=" + keyword);
            sb.append(",keyword2=" + keyword2);
            sb.append(",keyword1_theme=" + keyword1_theme);
            sb.append(",keyword2_theme=" + keyword2_theme);
            sb.append(",useConstraints=" + useConstraints);
            sb.append(",scopeCode=" + scopeCode);
            sb.append(",lineage=" + lineage);
            sb.append(",srs=" + srs);
            sb.append(",columnsDef=" + columnsDef);
            sb.append(",layerName=" + layerName);
            sb.append(",bands=" + bands);
            sb.append(",bandName=" + bandName);
            sb.append(",bandColorInterpret=" + bandColorInterpret);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(row3Struct other) {

            int returnValue = -1;

            return returnValue;
        }

        private int checkNullsAndCompare(Object object1, Object object2) {
            int returnValue = 0;
            if (object1 instanceof Comparable && object2 instanceof Comparable) {
                returnValue = ((Comparable) object1).compareTo(object2);
            } else if (object1 != null && object2 != null) {
                returnValue = compareStrings(object1.toString(), object2.toString());
            } else if (object1 == null && object2 != null) {
                returnValue = 1;
            } else if (object1 != null && object2 == null) {
                returnValue = -1;
            } else {
                returnValue = 0;
            }

            return returnValue;
        }

        private int compareStrings(String string1, String string2) {
            return string1.compareTo(string2);
        }

    }

    public static class row1Struct implements routines.system.IPersistableRow<row1Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_RasterJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_RasterJob = new byte[0];

        public String mdIdentifier;

        public String getMdIdentifier() {
            return this.mdIdentifier;
        }

        public String mdLanguage;

        public String getMdLanguage() {
            return this.mdLanguage;
        }

        public String mdCharacterSetCode;

        public String getMdCharacterSetCode() {
            return this.mdCharacterSetCode;
        }

        public String ciRoleCode;

        public String getCiRoleCode() {
            return this.ciRoleCode;
        }

        public String mdOrganisation;

        public String getMdOrganisation() {
            return this.mdOrganisation;
        }

        public String mdVoice;

        public String getMdVoice() {
            return this.mdVoice;
        }

        public String mdIndividualName;

        public String getMdIndividualName() {
            return this.mdIndividualName;
        }

        public String mdPositionName;

        public String getMdPositionName() {
            return this.mdPositionName;
        }

        public String mdDeliveryPoint;

        public String getMdDeliveryPoint() {
            return this.mdDeliveryPoint;
        }

        public String mdCity;

        public String getMdCity() {
            return this.mdCity;
        }

        public String mdAdministrativeArea;

        public String getMdAdministrativeArea() {
            return this.mdAdministrativeArea;
        }

        public String mdPostalCode;

        public String getMdPostalCode() {
            return this.mdPostalCode;
        }

        public String mdCountry;

        public String getMdCountry() {
            return this.mdCountry;
        }

        public String mdEmail;

        public String getMdEmail() {
            return this.mdEmail;
        }

        public String mdDate;

        public String getMdDate() {
            return this.mdDate;
        }

        public String title;

        public String getTitle() {
            return this.title;
        }

        public String organisationName;

        public String getOrganisationName() {
            return this.organisationName;
        }

        public String voice;

        public String getVoice() {
            return this.voice;
        }

        public String email;

        public String getEmail() {
            return this.email;
        }

        public String individualName;

        public String getIndividualName() {
            return this.individualName;
        }

        public String positionName;

        public String getPositionName() {
            return this.positionName;
        }

        public String deliveryPoint;

        public String getDeliveryPoint() {
            return this.deliveryPoint;
        }

        public String city;

        public String getCity() {
            return this.city;
        }

        public String administrativeArea;

        public String getAdministrativeArea() {
            return this.administrativeArea;
        }

        public String postalCode;

        public String getPostalCode() {
            return this.postalCode;
        }

        public String country;

        public String getCountry() {
            return this.country;
        }

        public String spatialRepresentationType;

        public String getSpatialRepresentationType() {
            return this.spatialRepresentationType;
        }

        public String scaleDenominator;

        public String getScaleDenominator() {
            return this.scaleDenominator;
        }

        public String topicCategoryCode;

        public String getTopicCategoryCode() {
            return this.topicCategoryCode;
        }

        public String west;

        public String getWest() {
            return this.west;
        }

        public String east;

        public String getEast() {
            return this.east;
        }

        public String south;

        public String getSouth() {
            return this.south;
        }

        public String north;

        public String getNorth() {
            return this.north;
        }

        public String mdMaintenanceFrequencyCode;

        public String getMdMaintenanceFrequencyCode() {
            return this.mdMaintenanceFrequencyCode;
        }

        public String keyword;

        public String getKeyword() {
            return this.keyword;
        }

        public String keyword2;

        public String getKeyword2() {
            return this.keyword2;
        }

        public String keyword1_theme;

        public String getKeyword1_theme() {
            return this.keyword1_theme;
        }

        public String keyword2_theme;

        public String getKeyword2_theme() {
            return this.keyword2_theme;
        }

        public String useConstraints;

        public String getUseConstraints() {
            return this.useConstraints;
        }

        public String scopeCode;

        public String getScopeCode() {
            return this.scopeCode;
        }

        public String lineage;

        public String getLineage() {
            return this.lineage;
        }

        public String srs;

        public String getSrs() {
            return this.srs;
        }

        public String columnsDef;

        public String getColumnsDef() {
            return this.columnsDef;
        }

        public String layerName;

        public String getLayerName() {
            return this.layerName;
        }

        public String bands;

        public String getBands() {
            return this.bands;
        }

        public String bandName;

        public String getBandName() {
            return this.bandName;
        }

        public String bandColorInterpret;

        public String getBandColorInterpret() {
            return this.bandColorInterpret;
        }

        private String readString(ObjectInputStream dis) throws IOException {
            String strReturn = null;
            int length = 0;
            length = dis.readInt();
            if (length == -1) {
                strReturn = null;
            } else {
                if (length > commonByteArray_METADATA_GENERATOR_RasterJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_RasterJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length, utf8Charset);
            }
            return strReturn;
        }

        private void writeString(String str, ObjectOutputStream dos) throws IOException {
            if (str == null) {
                dos.writeInt(-1);
            } else {
                byte[] byteArray = str.getBytes(utf8Charset);
                dos.writeInt(byteArray.length);
                dos.write(byteArray);
            }
        }

        public void readData(ObjectInputStream dis) {

            synchronized (commonByteArrayLock_METADATA_GENERATOR_RasterJob) {

                try {

                    int length = 0;

                    this.mdIdentifier = readString(dis);

                    this.mdLanguage = readString(dis);

                    this.mdCharacterSetCode = readString(dis);

                    this.ciRoleCode = readString(dis);

                    this.mdOrganisation = readString(dis);

                    this.mdVoice = readString(dis);

                    this.mdIndividualName = readString(dis);

                    this.mdPositionName = readString(dis);

                    this.mdDeliveryPoint = readString(dis);

                    this.mdCity = readString(dis);

                    this.mdAdministrativeArea = readString(dis);

                    this.mdPostalCode = readString(dis);

                    this.mdCountry = readString(dis);

                    this.mdEmail = readString(dis);

                    this.mdDate = readString(dis);

                    this.title = readString(dis);

                    this.organisationName = readString(dis);

                    this.voice = readString(dis);

                    this.email = readString(dis);

                    this.individualName = readString(dis);

                    this.positionName = readString(dis);

                    this.deliveryPoint = readString(dis);

                    this.city = readString(dis);

                    this.administrativeArea = readString(dis);

                    this.postalCode = readString(dis);

                    this.country = readString(dis);

                    this.spatialRepresentationType = readString(dis);

                    this.scaleDenominator = readString(dis);

                    this.topicCategoryCode = readString(dis);

                    this.west = readString(dis);

                    this.east = readString(dis);

                    this.south = readString(dis);

                    this.north = readString(dis);

                    this.mdMaintenanceFrequencyCode = readString(dis);

                    this.keyword = readString(dis);

                    this.keyword2 = readString(dis);

                    this.keyword1_theme = readString(dis);

                    this.keyword2_theme = readString(dis);

                    this.useConstraints = readString(dis);

                    this.scopeCode = readString(dis);

                    this.lineage = readString(dis);

                    this.srs = readString(dis);

                    this.columnsDef = readString(dis);

                    this.layerName = readString(dis);

                    this.bands = readString(dis);

                    this.bandName = readString(dis);

                    this.bandColorInterpret = readString(dis);

                } catch (IOException e) {
                    throw new RuntimeException(e);

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.mdIdentifier, dos);

                // String

                writeString(this.mdLanguage, dos);

                // String

                writeString(this.mdCharacterSetCode, dos);

                // String

                writeString(this.ciRoleCode, dos);

                // String

                writeString(this.mdOrganisation, dos);

                // String

                writeString(this.mdVoice, dos);

                // String

                writeString(this.mdIndividualName, dos);

                // String

                writeString(this.mdPositionName, dos);

                // String

                writeString(this.mdDeliveryPoint, dos);

                // String

                writeString(this.mdCity, dos);

                // String

                writeString(this.mdAdministrativeArea, dos);

                // String

                writeString(this.mdPostalCode, dos);

                // String

                writeString(this.mdCountry, dos);

                // String

                writeString(this.mdEmail, dos);

                // String

                writeString(this.mdDate, dos);

                // String

                writeString(this.title, dos);

                // String

                writeString(this.organisationName, dos);

                // String

                writeString(this.voice, dos);

                // String

                writeString(this.email, dos);

                // String

                writeString(this.individualName, dos);

                // String

                writeString(this.positionName, dos);

                // String

                writeString(this.deliveryPoint, dos);

                // String

                writeString(this.city, dos);

                // String

                writeString(this.administrativeArea, dos);

                // String

                writeString(this.postalCode, dos);

                // String

                writeString(this.country, dos);

                // String

                writeString(this.spatialRepresentationType, dos);

                // String

                writeString(this.scaleDenominator, dos);

                // String

                writeString(this.topicCategoryCode, dos);

                // String

                writeString(this.west, dos);

                // String

                writeString(this.east, dos);

                // String

                writeString(this.south, dos);

                // String

                writeString(this.north, dos);

                // String

                writeString(this.mdMaintenanceFrequencyCode, dos);

                // String

                writeString(this.keyword, dos);

                // String

                writeString(this.keyword2, dos);

                // String

                writeString(this.keyword1_theme, dos);

                // String

                writeString(this.keyword2_theme, dos);

                // String

                writeString(this.useConstraints, dos);

                // String

                writeString(this.scopeCode, dos);

                // String

                writeString(this.lineage, dos);

                // String

                writeString(this.srs, dos);

                // String

                writeString(this.columnsDef, dos);

                // String

                writeString(this.layerName, dos);

                // String

                writeString(this.bands, dos);

                // String

                writeString(this.bandName, dos);

                // String

                writeString(this.bandColorInterpret, dos);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("mdIdentifier=" + mdIdentifier);
            sb.append(",mdLanguage=" + mdLanguage);
            sb.append(",mdCharacterSetCode=" + mdCharacterSetCode);
            sb.append(",ciRoleCode=" + ciRoleCode);
            sb.append(",mdOrganisation=" + mdOrganisation);
            sb.append(",mdVoice=" + mdVoice);
            sb.append(",mdIndividualName=" + mdIndividualName);
            sb.append(",mdPositionName=" + mdPositionName);
            sb.append(",mdDeliveryPoint=" + mdDeliveryPoint);
            sb.append(",mdCity=" + mdCity);
            sb.append(",mdAdministrativeArea=" + mdAdministrativeArea);
            sb.append(",mdPostalCode=" + mdPostalCode);
            sb.append(",mdCountry=" + mdCountry);
            sb.append(",mdEmail=" + mdEmail);
            sb.append(",mdDate=" + mdDate);
            sb.append(",title=" + title);
            sb.append(",organisationName=" + organisationName);
            sb.append(",voice=" + voice);
            sb.append(",email=" + email);
            sb.append(",individualName=" + individualName);
            sb.append(",positionName=" + positionName);
            sb.append(",deliveryPoint=" + deliveryPoint);
            sb.append(",city=" + city);
            sb.append(",administrativeArea=" + administrativeArea);
            sb.append(",postalCode=" + postalCode);
            sb.append(",country=" + country);
            sb.append(",spatialRepresentationType=" + spatialRepresentationType);
            sb.append(",scaleDenominator=" + scaleDenominator);
            sb.append(",topicCategoryCode=" + topicCategoryCode);
            sb.append(",west=" + west);
            sb.append(",east=" + east);
            sb.append(",south=" + south);
            sb.append(",north=" + north);
            sb.append(",mdMaintenanceFrequencyCode=" + mdMaintenanceFrequencyCode);
            sb.append(",keyword=" + keyword);
            sb.append(",keyword2=" + keyword2);
            sb.append(",keyword1_theme=" + keyword1_theme);
            sb.append(",keyword2_theme=" + keyword2_theme);
            sb.append(",useConstraints=" + useConstraints);
            sb.append(",scopeCode=" + scopeCode);
            sb.append(",lineage=" + lineage);
            sb.append(",srs=" + srs);
            sb.append(",columnsDef=" + columnsDef);
            sb.append(",layerName=" + layerName);
            sb.append(",bands=" + bands);
            sb.append(",bandName=" + bandName);
            sb.append(",bandColorInterpret=" + bandColorInterpret);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(row1Struct other) {

            int returnValue = -1;

            return returnValue;
        }

        private int checkNullsAndCompare(Object object1, Object object2) {
            int returnValue = 0;
            if (object1 instanceof Comparable && object2 instanceof Comparable) {
                returnValue = ((Comparable) object1).compareTo(object2);
            } else if (object1 != null && object2 != null) {
                returnValue = compareStrings(object1.toString(), object2.toString());
            } else if (object1 == null && object2 != null) {
                returnValue = 1;
            } else if (object1 != null && object2 == null) {
                returnValue = -1;
            } else {
                returnValue = 0;
            }

            return returnValue;
        }

        private int compareStrings(String string1, String string2) {
            return string1.compareTo(string2);
        }

    }

    public static class row2Struct implements routines.system.IPersistableRow<row2Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_RasterJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_RasterJob = new byte[0];

        public String mdIdentifier;

        public String getMdIdentifier() {
            return this.mdIdentifier;
        }

        public String mdLanguage;

        public String getMdLanguage() {
            return this.mdLanguage;
        }

        public String mdCharacterSetCode;

        public String getMdCharacterSetCode() {
            return this.mdCharacterSetCode;
        }

        public String ciRoleCode;

        public String getCiRoleCode() {
            return this.ciRoleCode;
        }

        public String mdOrganisation;

        public String getMdOrganisation() {
            return this.mdOrganisation;
        }

        public String mdVoice;

        public String getMdVoice() {
            return this.mdVoice;
        }

        public String mdIndividualName;

        public String getMdIndividualName() {
            return this.mdIndividualName;
        }

        public String mdPositionName;

        public String getMdPositionName() {
            return this.mdPositionName;
        }

        public String mdDeliveryPoint;

        public String getMdDeliveryPoint() {
            return this.mdDeliveryPoint;
        }

        public String mdCity;

        public String getMdCity() {
            return this.mdCity;
        }

        public String mdAdministrativeArea;

        public String getMdAdministrativeArea() {
            return this.mdAdministrativeArea;
        }

        public String mdPostalCode;

        public String getMdPostalCode() {
            return this.mdPostalCode;
        }

        public String mdCountry;

        public String getMdCountry() {
            return this.mdCountry;
        }

        public String mdEmail;

        public String getMdEmail() {
            return this.mdEmail;
        }

        public String mdDate;

        public String getMdDate() {
            return this.mdDate;
        }

        public String title;

        public String getTitle() {
            return this.title;
        }

        public String organisationName;

        public String getOrganisationName() {
            return this.organisationName;
        }

        public String voice;

        public String getVoice() {
            return this.voice;
        }

        public String email;

        public String getEmail() {
            return this.email;
        }

        public String individualName;

        public String getIndividualName() {
            return this.individualName;
        }

        public String positionName;

        public String getPositionName() {
            return this.positionName;
        }

        public String deliveryPoint;

        public String getDeliveryPoint() {
            return this.deliveryPoint;
        }

        public String city;

        public String getCity() {
            return this.city;
        }

        public String administrativeArea;

        public String getAdministrativeArea() {
            return this.administrativeArea;
        }

        public String postalCode;

        public String getPostalCode() {
            return this.postalCode;
        }

        public String country;

        public String getCountry() {
            return this.country;
        }

        public String spatialRepresentationType;

        public String getSpatialRepresentationType() {
            return this.spatialRepresentationType;
        }

        public String scaleDenominator;

        public String getScaleDenominator() {
            return this.scaleDenominator;
        }

        public String topicCategoryCode;

        public String getTopicCategoryCode() {
            return this.topicCategoryCode;
        }

        public String west;

        public String getWest() {
            return this.west;
        }

        public String east;

        public String getEast() {
            return this.east;
        }

        public String south;

        public String getSouth() {
            return this.south;
        }

        public String north;

        public String getNorth() {
            return this.north;
        }

        public String mdMaintenanceFrequencyCode;

        public String getMdMaintenanceFrequencyCode() {
            return this.mdMaintenanceFrequencyCode;
        }

        public String keyword;

        public String getKeyword() {
            return this.keyword;
        }

        public String keyword2;

        public String getKeyword2() {
            return this.keyword2;
        }

        public String keyword1_theme;

        public String getKeyword1_theme() {
            return this.keyword1_theme;
        }

        public String keyword2_theme;

        public String getKeyword2_theme() {
            return this.keyword2_theme;
        }

        public String useConstraints;

        public String getUseConstraints() {
            return this.useConstraints;
        }

        public String scopeCode;

        public String getScopeCode() {
            return this.scopeCode;
        }

        public String lineage;

        public String getLineage() {
            return this.lineage;
        }

        public String srs;

        public String getSrs() {
            return this.srs;
        }

        public String columnsDef;

        public String getColumnsDef() {
            return this.columnsDef;
        }

        public String layerName;

        public String getLayerName() {
            return this.layerName;
        }

        public String bands;

        public String getBands() {
            return this.bands;
        }

        private String readString(ObjectInputStream dis) throws IOException {
            String strReturn = null;
            int length = 0;
            length = dis.readInt();
            if (length == -1) {
                strReturn = null;
            } else {
                if (length > commonByteArray_METADATA_GENERATOR_RasterJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_RasterJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length, utf8Charset);
            }
            return strReturn;
        }

        private void writeString(String str, ObjectOutputStream dos) throws IOException {
            if (str == null) {
                dos.writeInt(-1);
            } else {
                byte[] byteArray = str.getBytes(utf8Charset);
                dos.writeInt(byteArray.length);
                dos.write(byteArray);
            }
        }

        public void readData(ObjectInputStream dis) {

            synchronized (commonByteArrayLock_METADATA_GENERATOR_RasterJob) {

                try {

                    int length = 0;

                    this.mdIdentifier = readString(dis);

                    this.mdLanguage = readString(dis);

                    this.mdCharacterSetCode = readString(dis);

                    this.ciRoleCode = readString(dis);

                    this.mdOrganisation = readString(dis);

                    this.mdVoice = readString(dis);

                    this.mdIndividualName = readString(dis);

                    this.mdPositionName = readString(dis);

                    this.mdDeliveryPoint = readString(dis);

                    this.mdCity = readString(dis);

                    this.mdAdministrativeArea = readString(dis);

                    this.mdPostalCode = readString(dis);

                    this.mdCountry = readString(dis);

                    this.mdEmail = readString(dis);

                    this.mdDate = readString(dis);

                    this.title = readString(dis);

                    this.organisationName = readString(dis);

                    this.voice = readString(dis);

                    this.email = readString(dis);

                    this.individualName = readString(dis);

                    this.positionName = readString(dis);

                    this.deliveryPoint = readString(dis);

                    this.city = readString(dis);

                    this.administrativeArea = readString(dis);

                    this.postalCode = readString(dis);

                    this.country = readString(dis);

                    this.spatialRepresentationType = readString(dis);

                    this.scaleDenominator = readString(dis);

                    this.topicCategoryCode = readString(dis);

                    this.west = readString(dis);

                    this.east = readString(dis);

                    this.south = readString(dis);

                    this.north = readString(dis);

                    this.mdMaintenanceFrequencyCode = readString(dis);

                    this.keyword = readString(dis);

                    this.keyword2 = readString(dis);

                    this.keyword1_theme = readString(dis);

                    this.keyword2_theme = readString(dis);

                    this.useConstraints = readString(dis);

                    this.scopeCode = readString(dis);

                    this.lineage = readString(dis);

                    this.srs = readString(dis);

                    this.columnsDef = readString(dis);

                    this.layerName = readString(dis);

                    this.bands = readString(dis);

                } catch (IOException e) {
                    throw new RuntimeException(e);

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.mdIdentifier, dos);

                // String

                writeString(this.mdLanguage, dos);

                // String

                writeString(this.mdCharacterSetCode, dos);

                // String

                writeString(this.ciRoleCode, dos);

                // String

                writeString(this.mdOrganisation, dos);

                // String

                writeString(this.mdVoice, dos);

                // String

                writeString(this.mdIndividualName, dos);

                // String

                writeString(this.mdPositionName, dos);

                // String

                writeString(this.mdDeliveryPoint, dos);

                // String

                writeString(this.mdCity, dos);

                // String

                writeString(this.mdAdministrativeArea, dos);

                // String

                writeString(this.mdPostalCode, dos);

                // String

                writeString(this.mdCountry, dos);

                // String

                writeString(this.mdEmail, dos);

                // String

                writeString(this.mdDate, dos);

                // String

                writeString(this.title, dos);

                // String

                writeString(this.organisationName, dos);

                // String

                writeString(this.voice, dos);

                // String

                writeString(this.email, dos);

                // String

                writeString(this.individualName, dos);

                // String

                writeString(this.positionName, dos);

                // String

                writeString(this.deliveryPoint, dos);

                // String

                writeString(this.city, dos);

                // String

                writeString(this.administrativeArea, dos);

                // String

                writeString(this.postalCode, dos);

                // String

                writeString(this.country, dos);

                // String

                writeString(this.spatialRepresentationType, dos);

                // String

                writeString(this.scaleDenominator, dos);

                // String

                writeString(this.topicCategoryCode, dos);

                // String

                writeString(this.west, dos);

                // String

                writeString(this.east, dos);

                // String

                writeString(this.south, dos);

                // String

                writeString(this.north, dos);

                // String

                writeString(this.mdMaintenanceFrequencyCode, dos);

                // String

                writeString(this.keyword, dos);

                // String

                writeString(this.keyword2, dos);

                // String

                writeString(this.keyword1_theme, dos);

                // String

                writeString(this.keyword2_theme, dos);

                // String

                writeString(this.useConstraints, dos);

                // String

                writeString(this.scopeCode, dos);

                // String

                writeString(this.lineage, dos);

                // String

                writeString(this.srs, dos);

                // String

                writeString(this.columnsDef, dos);

                // String

                writeString(this.layerName, dos);

                // String

                writeString(this.bands, dos);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("mdIdentifier=" + mdIdentifier);
            sb.append(",mdLanguage=" + mdLanguage);
            sb.append(",mdCharacterSetCode=" + mdCharacterSetCode);
            sb.append(",ciRoleCode=" + ciRoleCode);
            sb.append(",mdOrganisation=" + mdOrganisation);
            sb.append(",mdVoice=" + mdVoice);
            sb.append(",mdIndividualName=" + mdIndividualName);
            sb.append(",mdPositionName=" + mdPositionName);
            sb.append(",mdDeliveryPoint=" + mdDeliveryPoint);
            sb.append(",mdCity=" + mdCity);
            sb.append(",mdAdministrativeArea=" + mdAdministrativeArea);
            sb.append(",mdPostalCode=" + mdPostalCode);
            sb.append(",mdCountry=" + mdCountry);
            sb.append(",mdEmail=" + mdEmail);
            sb.append(",mdDate=" + mdDate);
            sb.append(",title=" + title);
            sb.append(",organisationName=" + organisationName);
            sb.append(",voice=" + voice);
            sb.append(",email=" + email);
            sb.append(",individualName=" + individualName);
            sb.append(",positionName=" + positionName);
            sb.append(",deliveryPoint=" + deliveryPoint);
            sb.append(",city=" + city);
            sb.append(",administrativeArea=" + administrativeArea);
            sb.append(",postalCode=" + postalCode);
            sb.append(",country=" + country);
            sb.append(",spatialRepresentationType=" + spatialRepresentationType);
            sb.append(",scaleDenominator=" + scaleDenominator);
            sb.append(",topicCategoryCode=" + topicCategoryCode);
            sb.append(",west=" + west);
            sb.append(",east=" + east);
            sb.append(",south=" + south);
            sb.append(",north=" + north);
            sb.append(",mdMaintenanceFrequencyCode=" + mdMaintenanceFrequencyCode);
            sb.append(",keyword=" + keyword);
            sb.append(",keyword2=" + keyword2);
            sb.append(",keyword1_theme=" + keyword1_theme);
            sb.append(",keyword2_theme=" + keyword2_theme);
            sb.append(",useConstraints=" + useConstraints);
            sb.append(",scopeCode=" + scopeCode);
            sb.append(",lineage=" + lineage);
            sb.append(",srs=" + srs);
            sb.append(",columnsDef=" + columnsDef);
            sb.append(",layerName=" + layerName);
            sb.append(",bands=" + bands);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(row2Struct other) {

            int returnValue = -1;

            return returnValue;
        }

        private int checkNullsAndCompare(Object object1, Object object2) {
            int returnValue = 0;
            if (object1 instanceof Comparable && object2 instanceof Comparable) {
                returnValue = ((Comparable) object1).compareTo(object2);
            } else if (object1 != null && object2 != null) {
                returnValue = compareStrings(object1.toString(), object2.toString());
            } else if (object1 == null && object2 != null) {
                returnValue = 1;
            } else if (object1 != null && object2 == null) {
                returnValue = -1;
            } else {
                returnValue = 0;
            }

            return returnValue;
        }

        private int compareStrings(String string1, String string2) {
            return string1.compareTo(string2);
        }

    }

    public static class iso19115Struct implements routines.system.IPersistableRow<iso19115Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_RasterJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_RasterJob = new byte[0];

        public String mdIdentifier;

        public String getMdIdentifier() {
            return this.mdIdentifier;
        }

        public String mdLanguage;

        public String getMdLanguage() {
            return this.mdLanguage;
        }

        public String mdCharacterSetCode;

        public String getMdCharacterSetCode() {
            return this.mdCharacterSetCode;
        }

        public String ciRoleCode;

        public String getCiRoleCode() {
            return this.ciRoleCode;
        }

        public String mdOrganisation;

        public String getMdOrganisation() {
            return this.mdOrganisation;
        }

        public String mdVoice;

        public String getMdVoice() {
            return this.mdVoice;
        }

        public String mdIndividualName;

        public String getMdIndividualName() {
            return this.mdIndividualName;
        }

        public String mdPositionName;

        public String getMdPositionName() {
            return this.mdPositionName;
        }

        public String mdDeliveryPoint;

        public String getMdDeliveryPoint() {
            return this.mdDeliveryPoint;
        }

        public String mdCity;

        public String getMdCity() {
            return this.mdCity;
        }

        public String mdAdministrativeArea;

        public String getMdAdministrativeArea() {
            return this.mdAdministrativeArea;
        }

        public String mdPostalCode;

        public String getMdPostalCode() {
            return this.mdPostalCode;
        }

        public String mdCountry;

        public String getMdCountry() {
            return this.mdCountry;
        }

        public String mdEmail;

        public String getMdEmail() {
            return this.mdEmail;
        }

        public String mdDate;

        public String getMdDate() {
            return this.mdDate;
        }

        public String title;

        public String getTitle() {
            return this.title;
        }

        public String organisationName;

        public String getOrganisationName() {
            return this.organisationName;
        }

        public String voice;

        public String getVoice() {
            return this.voice;
        }

        public String email;

        public String getEmail() {
            return this.email;
        }

        public String individualName;

        public String getIndividualName() {
            return this.individualName;
        }

        public String positionName;

        public String getPositionName() {
            return this.positionName;
        }

        public String deliveryPoint;

        public String getDeliveryPoint() {
            return this.deliveryPoint;
        }

        public String city;

        public String getCity() {
            return this.city;
        }

        public String administrativeArea;

        public String getAdministrativeArea() {
            return this.administrativeArea;
        }

        public String postalCode;

        public String getPostalCode() {
            return this.postalCode;
        }

        public String country;

        public String getCountry() {
            return this.country;
        }

        public String spatialRepresentationType;

        public String getSpatialRepresentationType() {
            return this.spatialRepresentationType;
        }

        public String scaleDenominator;

        public String getScaleDenominator() {
            return this.scaleDenominator;
        }

        public String topicCategoryCode;

        public String getTopicCategoryCode() {
            return this.topicCategoryCode;
        }

        public String west;

        public String getWest() {
            return this.west;
        }

        public String east;

        public String getEast() {
            return this.east;
        }

        public String south;

        public String getSouth() {
            return this.south;
        }

        public String north;

        public String getNorth() {
            return this.north;
        }

        public String mdMaintenanceFrequencyCode;

        public String getMdMaintenanceFrequencyCode() {
            return this.mdMaintenanceFrequencyCode;
        }

        public String keyword;

        public String getKeyword() {
            return this.keyword;
        }

        public String keyword2;

        public String getKeyword2() {
            return this.keyword2;
        }

        public String keyword1_theme;

        public String getKeyword1_theme() {
            return this.keyword1_theme;
        }

        public String keyword2_theme;

        public String getKeyword2_theme() {
            return this.keyword2_theme;
        }

        public String useConstraints;

        public String getUseConstraints() {
            return this.useConstraints;
        }

        public String scopeCode;

        public String getScopeCode() {
            return this.scopeCode;
        }

        public String lineage;

        public String getLineage() {
            return this.lineage;
        }

        public String srs;

        public String getSrs() {
            return this.srs;
        }

        public String columnsDef;

        public String getColumnsDef() {
            return this.columnsDef;
        }

        public String layerName;

        public String getLayerName() {
            return this.layerName;
        }

        public String bands;

        public String getBands() {
            return this.bands;
        }

        private String readString(ObjectInputStream dis) throws IOException {
            String strReturn = null;
            int length = 0;
            length = dis.readInt();
            if (length == -1) {
                strReturn = null;
            } else {
                if (length > commonByteArray_METADATA_GENERATOR_RasterJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_RasterJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length, utf8Charset);
            }
            return strReturn;
        }

        private void writeString(String str, ObjectOutputStream dos) throws IOException {
            if (str == null) {
                dos.writeInt(-1);
            } else {
                byte[] byteArray = str.getBytes(utf8Charset);
                dos.writeInt(byteArray.length);
                dos.write(byteArray);
            }
        }

        public void readData(ObjectInputStream dis) {

            synchronized (commonByteArrayLock_METADATA_GENERATOR_RasterJob) {

                try {

                    int length = 0;

                    this.mdIdentifier = readString(dis);

                    this.mdLanguage = readString(dis);

                    this.mdCharacterSetCode = readString(dis);

                    this.ciRoleCode = readString(dis);

                    this.mdOrganisation = readString(dis);

                    this.mdVoice = readString(dis);

                    this.mdIndividualName = readString(dis);

                    this.mdPositionName = readString(dis);

                    this.mdDeliveryPoint = readString(dis);

                    this.mdCity = readString(dis);

                    this.mdAdministrativeArea = readString(dis);

                    this.mdPostalCode = readString(dis);

                    this.mdCountry = readString(dis);

                    this.mdEmail = readString(dis);

                    this.mdDate = readString(dis);

                    this.title = readString(dis);

                    this.organisationName = readString(dis);

                    this.voice = readString(dis);

                    this.email = readString(dis);

                    this.individualName = readString(dis);

                    this.positionName = readString(dis);

                    this.deliveryPoint = readString(dis);

                    this.city = readString(dis);

                    this.administrativeArea = readString(dis);

                    this.postalCode = readString(dis);

                    this.country = readString(dis);

                    this.spatialRepresentationType = readString(dis);

                    this.scaleDenominator = readString(dis);

                    this.topicCategoryCode = readString(dis);

                    this.west = readString(dis);

                    this.east = readString(dis);

                    this.south = readString(dis);

                    this.north = readString(dis);

                    this.mdMaintenanceFrequencyCode = readString(dis);

                    this.keyword = readString(dis);

                    this.keyword2 = readString(dis);

                    this.keyword1_theme = readString(dis);

                    this.keyword2_theme = readString(dis);

                    this.useConstraints = readString(dis);

                    this.scopeCode = readString(dis);

                    this.lineage = readString(dis);

                    this.srs = readString(dis);

                    this.columnsDef = readString(dis);

                    this.layerName = readString(dis);

                    this.bands = readString(dis);

                } catch (IOException e) {
                    throw new RuntimeException(e);

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.mdIdentifier, dos);

                // String

                writeString(this.mdLanguage, dos);

                // String

                writeString(this.mdCharacterSetCode, dos);

                // String

                writeString(this.ciRoleCode, dos);

                // String

                writeString(this.mdOrganisation, dos);

                // String

                writeString(this.mdVoice, dos);

                // String

                writeString(this.mdIndividualName, dos);

                // String

                writeString(this.mdPositionName, dos);

                // String

                writeString(this.mdDeliveryPoint, dos);

                // String

                writeString(this.mdCity, dos);

                // String

                writeString(this.mdAdministrativeArea, dos);

                // String

                writeString(this.mdPostalCode, dos);

                // String

                writeString(this.mdCountry, dos);

                // String

                writeString(this.mdEmail, dos);

                // String

                writeString(this.mdDate, dos);

                // String

                writeString(this.title, dos);

                // String

                writeString(this.organisationName, dos);

                // String

                writeString(this.voice, dos);

                // String

                writeString(this.email, dos);

                // String

                writeString(this.individualName, dos);

                // String

                writeString(this.positionName, dos);

                // String

                writeString(this.deliveryPoint, dos);

                // String

                writeString(this.city, dos);

                // String

                writeString(this.administrativeArea, dos);

                // String

                writeString(this.postalCode, dos);

                // String

                writeString(this.country, dos);

                // String

                writeString(this.spatialRepresentationType, dos);

                // String

                writeString(this.scaleDenominator, dos);

                // String

                writeString(this.topicCategoryCode, dos);

                // String

                writeString(this.west, dos);

                // String

                writeString(this.east, dos);

                // String

                writeString(this.south, dos);

                // String

                writeString(this.north, dos);

                // String

                writeString(this.mdMaintenanceFrequencyCode, dos);

                // String

                writeString(this.keyword, dos);

                // String

                writeString(this.keyword2, dos);

                // String

                writeString(this.keyword1_theme, dos);

                // String

                writeString(this.keyword2_theme, dos);

                // String

                writeString(this.useConstraints, dos);

                // String

                writeString(this.scopeCode, dos);

                // String

                writeString(this.lineage, dos);

                // String

                writeString(this.srs, dos);

                // String

                writeString(this.columnsDef, dos);

                // String

                writeString(this.layerName, dos);

                // String

                writeString(this.bands, dos);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("mdIdentifier=" + mdIdentifier);
            sb.append(",mdLanguage=" + mdLanguage);
            sb.append(",mdCharacterSetCode=" + mdCharacterSetCode);
            sb.append(",ciRoleCode=" + ciRoleCode);
            sb.append(",mdOrganisation=" + mdOrganisation);
            sb.append(",mdVoice=" + mdVoice);
            sb.append(",mdIndividualName=" + mdIndividualName);
            sb.append(",mdPositionName=" + mdPositionName);
            sb.append(",mdDeliveryPoint=" + mdDeliveryPoint);
            sb.append(",mdCity=" + mdCity);
            sb.append(",mdAdministrativeArea=" + mdAdministrativeArea);
            sb.append(",mdPostalCode=" + mdPostalCode);
            sb.append(",mdCountry=" + mdCountry);
            sb.append(",mdEmail=" + mdEmail);
            sb.append(",mdDate=" + mdDate);
            sb.append(",title=" + title);
            sb.append(",organisationName=" + organisationName);
            sb.append(",voice=" + voice);
            sb.append(",email=" + email);
            sb.append(",individualName=" + individualName);
            sb.append(",positionName=" + positionName);
            sb.append(",deliveryPoint=" + deliveryPoint);
            sb.append(",city=" + city);
            sb.append(",administrativeArea=" + administrativeArea);
            sb.append(",postalCode=" + postalCode);
            sb.append(",country=" + country);
            sb.append(",spatialRepresentationType=" + spatialRepresentationType);
            sb.append(",scaleDenominator=" + scaleDenominator);
            sb.append(",topicCategoryCode=" + topicCategoryCode);
            sb.append(",west=" + west);
            sb.append(",east=" + east);
            sb.append(",south=" + south);
            sb.append(",north=" + north);
            sb.append(",mdMaintenanceFrequencyCode=" + mdMaintenanceFrequencyCode);
            sb.append(",keyword=" + keyword);
            sb.append(",keyword2=" + keyword2);
            sb.append(",keyword1_theme=" + keyword1_theme);
            sb.append(",keyword2_theme=" + keyword2_theme);
            sb.append(",useConstraints=" + useConstraints);
            sb.append(",scopeCode=" + scopeCode);
            sb.append(",lineage=" + lineage);
            sb.append(",srs=" + srs);
            sb.append(",columnsDef=" + columnsDef);
            sb.append(",layerName=" + layerName);
            sb.append(",bands=" + bands);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(iso19115Struct other) {

            int returnValue = -1;

            return returnValue;
        }

        private int checkNullsAndCompare(Object object1, Object object2) {
            int returnValue = 0;
            if (object1 instanceof Comparable && object2 instanceof Comparable) {
                returnValue = ((Comparable) object1).compareTo(object2);
            } else if (object1 != null && object2 != null) {
                returnValue = compareStrings(object1.toString(), object2.toString());
            } else if (object1 == null && object2 != null) {
                returnValue = 1;
            } else if (object1 != null && object2 == null) {
                returnValue = -1;
            } else {
                returnValue = 0;
            }

            return returnValue;
        }

        private int compareStrings(String string1, String string2) {
            return string1.compareTo(string2);
        }

    }

    public static class fromActualFileStruct implements routines.system.IPersistableRow<fromActualFileStruct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_RasterJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_RasterJob = new byte[0];

        public String driver;

        public String getDriver() {
            return this.driver;
        }

        public String files;

        public String getFiles() {
            return this.files;
        }

        public Integer x_size;

        public Integer getX_size() {
            return this.x_size;
        }

        public Integer y_size;

        public Integer getY_size() {
            return this.y_size;
        }

        public String srs;

        public String getSrs() {
            return this.srs;
        }

        public Integer epsg_code;

        public Integer getEpsg_code() {
            return this.epsg_code;
        }

        public Geometry origin;

        public Geometry getOrigin() {
            return this.origin;
        }

        public String pixel_size;

        public String getPixel_size() {
            return this.pixel_size;
        }

        public String geotransform;

        public String getGeotransform() {
            return this.geotransform;
        }

        public Geometry center;

        public Geometry getCenter() {
            return this.center;
        }

        public Geometry geo_extent;

        public Geometry getGeo_extent() {
            return this.geo_extent;
        }

        public Geometry latlon_extent;

        public Geometry getLatlon_extent() {
            return this.latlon_extent;
        }

        public String bands;

        public String getBands() {
            return this.bands;
        }

        private String readString(ObjectInputStream dis) throws IOException {
            String strReturn = null;
            int length = 0;
            length = dis.readInt();
            if (length == -1) {
                strReturn = null;
            } else {
                if (length > commonByteArray_METADATA_GENERATOR_RasterJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_RasterJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length, utf8Charset);
            }
            return strReturn;
        }

        private void writeString(String str, ObjectOutputStream dos) throws IOException {
            if (str == null) {
                dos.writeInt(-1);
            } else {
                byte[] byteArray = str.getBytes(utf8Charset);
                dos.writeInt(byteArray.length);
                dos.write(byteArray);
            }
        }

        private Integer readInteger(ObjectInputStream dis) throws IOException {
            Integer intReturn;
            int length = 0;
            length = dis.readByte();
            if (length == -1) {
                intReturn = null;
            } else {
                intReturn = dis.readInt();
            }
            return intReturn;
        }

        private void writeInteger(Integer intNum, ObjectOutputStream dos) throws IOException {
            if (intNum == null) {
                dos.writeByte(-1);
            } else {
                dos.writeByte(0);
                dos.writeInt(intNum);
            }
        }

        public void readData(ObjectInputStream dis) {

            synchronized (commonByteArrayLock_METADATA_GENERATOR_RasterJob) {

                try {

                    int length = 0;

                    this.driver = readString(dis);

                    this.files = readString(dis);

                    this.x_size = readInteger(dis);

                    this.y_size = readInteger(dis);

                    this.srs = readString(dis);

                    this.epsg_code = readInteger(dis);

                    this.origin = (Geometry) dis.readObject();

                    this.pixel_size = readString(dis);

                    this.geotransform = readString(dis);

                    this.center = (Geometry) dis.readObject();

                    this.geo_extent = (Geometry) dis.readObject();

                    this.latlon_extent = (Geometry) dis.readObject();

                    this.bands = readString(dis);

                } catch (IOException e) {
                    throw new RuntimeException(e);

                } catch (ClassNotFoundException eCNFE) {
                    throw new RuntimeException(eCNFE);

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.driver, dos);

                // String

                writeString(this.files, dos);

                // Integer

                writeInteger(this.x_size, dos);

                // Integer

                writeInteger(this.y_size, dos);

                // String

                writeString(this.srs, dos);

                // Integer

                writeInteger(this.epsg_code, dos);

                // Geometry

                dos.writeObject(this.origin);

                // String

                writeString(this.pixel_size, dos);

                // String

                writeString(this.geotransform, dos);

                // Geometry

                dos.writeObject(this.center);

                // Geometry

                dos.writeObject(this.geo_extent);

                // Geometry

                dos.writeObject(this.latlon_extent);

                // String

                writeString(this.bands, dos);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("driver=" + driver);
            sb.append(",files=" + files);
            sb.append(",x_size=" + String.valueOf(x_size));
            sb.append(",y_size=" + String.valueOf(y_size));
            sb.append(",srs=" + srs);
            sb.append(",epsg_code=" + String.valueOf(epsg_code));
            sb.append(",origin=" + String.valueOf(origin));
            sb.append(",pixel_size=" + pixel_size);
            sb.append(",geotransform=" + geotransform);
            sb.append(",center=" + String.valueOf(center));
            sb.append(",geo_extent=" + String.valueOf(geo_extent));
            sb.append(",latlon_extent=" + String.valueOf(latlon_extent));
            sb.append(",bands=" + bands);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(fromActualFileStruct other) {

            int returnValue = -1;

            return returnValue;
        }

        private int checkNullsAndCompare(Object object1, Object object2) {
            int returnValue = 0;
            if (object1 instanceof Comparable && object2 instanceof Comparable) {
                returnValue = ((Comparable) object1).compareTo(object2);
            } else if (object1 != null && object2 != null) {
                returnValue = compareStrings(object1.toString(), object2.toString());
            } else if (object1 == null && object2 != null) {
                returnValue = 1;
            } else if (object1 != null && object2 == null) {
                returnValue = -1;
            } else {
                returnValue = 0;
            }

            return returnValue;
        }

        private int compareStrings(String string1, String string2) {
            return string1.compareTo(string2);
        }

    }

    public static class after_sGdalInfoInput_2Struct
            implements routines.system.IPersistableRow<after_sGdalInfoInput_2Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_RasterJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_RasterJob = new byte[0];

        public String driver;

        public String getDriver() {
            return this.driver;
        }

        public String files;

        public String getFiles() {
            return this.files;
        }

        public Integer x_size;

        public Integer getX_size() {
            return this.x_size;
        }

        public Integer y_size;

        public Integer getY_size() {
            return this.y_size;
        }

        public String srs;

        public String getSrs() {
            return this.srs;
        }

        public Integer epsg_code;

        public Integer getEpsg_code() {
            return this.epsg_code;
        }

        public Geometry origin;

        public Geometry getOrigin() {
            return this.origin;
        }

        public String pixel_size;

        public String getPixel_size() {
            return this.pixel_size;
        }

        public String geotransform;

        public String getGeotransform() {
            return this.geotransform;
        }

        public Geometry center;

        public Geometry getCenter() {
            return this.center;
        }

        public Geometry geo_extent;

        public Geometry getGeo_extent() {
            return this.geo_extent;
        }

        public Geometry latlon_extent;

        public Geometry getLatlon_extent() {
            return this.latlon_extent;
        }

        public String bands;

        public String getBands() {
            return this.bands;
        }

        private String readString(ObjectInputStream dis) throws IOException {
            String strReturn = null;
            int length = 0;
            length = dis.readInt();
            if (length == -1) {
                strReturn = null;
            } else {
                if (length > commonByteArray_METADATA_GENERATOR_RasterJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_RasterJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length, utf8Charset);
            }
            return strReturn;
        }

        private void writeString(String str, ObjectOutputStream dos) throws IOException {
            if (str == null) {
                dos.writeInt(-1);
            } else {
                byte[] byteArray = str.getBytes(utf8Charset);
                dos.writeInt(byteArray.length);
                dos.write(byteArray);
            }
        }

        private Integer readInteger(ObjectInputStream dis) throws IOException {
            Integer intReturn;
            int length = 0;
            length = dis.readByte();
            if (length == -1) {
                intReturn = null;
            } else {
                intReturn = dis.readInt();
            }
            return intReturn;
        }

        private void writeInteger(Integer intNum, ObjectOutputStream dos) throws IOException {
            if (intNum == null) {
                dos.writeByte(-1);
            } else {
                dos.writeByte(0);
                dos.writeInt(intNum);
            }
        }

        public void readData(ObjectInputStream dis) {

            synchronized (commonByteArrayLock_METADATA_GENERATOR_RasterJob) {

                try {

                    int length = 0;

                    this.driver = readString(dis);

                    this.files = readString(dis);

                    this.x_size = readInteger(dis);

                    this.y_size = readInteger(dis);

                    this.srs = readString(dis);

                    this.epsg_code = readInteger(dis);

                    this.origin = (Geometry) dis.readObject();

                    this.pixel_size = readString(dis);

                    this.geotransform = readString(dis);

                    this.center = (Geometry) dis.readObject();

                    this.geo_extent = (Geometry) dis.readObject();

                    this.latlon_extent = (Geometry) dis.readObject();

                    this.bands = readString(dis);

                } catch (IOException e) {
                    throw new RuntimeException(e);

                } catch (ClassNotFoundException eCNFE) {
                    throw new RuntimeException(eCNFE);

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.driver, dos);

                // String

                writeString(this.files, dos);

                // Integer

                writeInteger(this.x_size, dos);

                // Integer

                writeInteger(this.y_size, dos);

                // String

                writeString(this.srs, dos);

                // Integer

                writeInteger(this.epsg_code, dos);

                // Geometry

                dos.writeObject(this.origin);

                // String

                writeString(this.pixel_size, dos);

                // String

                writeString(this.geotransform, dos);

                // Geometry

                dos.writeObject(this.center);

                // Geometry

                dos.writeObject(this.geo_extent);

                // Geometry

                dos.writeObject(this.latlon_extent);

                // String

                writeString(this.bands, dos);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("driver=" + driver);
            sb.append(",files=" + files);
            sb.append(",x_size=" + String.valueOf(x_size));
            sb.append(",y_size=" + String.valueOf(y_size));
            sb.append(",srs=" + srs);
            sb.append(",epsg_code=" + String.valueOf(epsg_code));
            sb.append(",origin=" + String.valueOf(origin));
            sb.append(",pixel_size=" + pixel_size);
            sb.append(",geotransform=" + geotransform);
            sb.append(",center=" + String.valueOf(center));
            sb.append(",geo_extent=" + String.valueOf(geo_extent));
            sb.append(",latlon_extent=" + String.valueOf(latlon_extent));
            sb.append(",bands=" + bands);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(after_sGdalInfoInput_2Struct other) {

            int returnValue = -1;

            return returnValue;
        }

        private int checkNullsAndCompare(Object object1, Object object2) {
            int returnValue = 0;
            if (object1 instanceof Comparable && object2 instanceof Comparable) {
                returnValue = ((Comparable) object1).compareTo(object2);
            } else if (object1 != null && object2 != null) {
                returnValue = compareStrings(object1.toString(), object2.toString());
            } else if (object1 == null && object2 != null) {
                returnValue = 1;
            } else if (object1 != null && object2 == null) {
                returnValue = -1;
            } else {
                returnValue = 0;
            }

            return returnValue;
        }

        private int compareStrings(String string1, String string2) {
            return string1.compareTo(string2);
        }

    }

    public void sGdalInfoInput_2Process(final java.util.Map<String, Object> globalMap) throws TalendException {
        globalMap.put("sGdalInfoInput_2_SUBPROCESS_STATE", 0);

        final boolean execStat = this.execStat;

        String iterateId = "";

        String currentComponent = "";
        java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();

        try {

            String currentMethodName = new java.lang.Exception().getStackTrace()[0].getMethodName();
            boolean resumeIt = currentMethodName.equals(resumeEntryMethodName);
            if (resumeEntryMethodName == null || resumeIt || globalResumeTicket) {// start
                // the
                // resume
                globalResumeTicket = true;

                tFileInputDelimited_1Process(globalMap);

                fromActualFileStruct fromActualFile = new fromActualFileStruct();
                iso19115Struct iso19115 = new iso19115Struct();
                row2Struct row2 = new row2Struct();
                row1Struct row1 = new row1Struct();
                row1Struct row3 = row1;

                /**
                 * [tAdvancedFileOutputXML_2 begin ] start
                 */

                ok_Hash.put("tAdvancedFileOutputXML_2", false);
                start_Hash.put("tAdvancedFileOutputXML_2", System.currentTimeMillis());

                currentComponent = "tAdvancedFileOutputXML_2";

                int tos_count_tAdvancedFileOutputXML_2 = 0;

                int nb_line_tAFOX_2 = 0;

                boolean needRoot_tAFOX_2 = true;

                String fileName_tAFOX_2 = (context.generateMetadataInSeparateDir
                        ? context.metadataDir + "/" + new java.io.File(context.file).getName()
                        : context.file) + "_md_iso19115-3_" + System.currentTimeMillis() + ".xml";
                Boolean alreadyExistsFile_tAFOX_2 = new java.io.File(fileName_tAFOX_2).exists();
                fileName_tAFOX_2 = new java.io.File(fileName_tAFOX_2).getAbsolutePath().replace("\\", "/");
                String file_tAFOX_2 = "";

                if (fileName_tAFOX_2.indexOf("/") < 0) {
                    throw new IllegalArgumentException("not a correct file name.");
                } else {
                    String tail_tAFOX_2 = fileName_tAFOX_2.substring(fileName_tAFOX_2.lastIndexOf("/"));
                    file_tAFOX_2 = tail_tAFOX_2.lastIndexOf(".") > 0
                            ? fileName_tAFOX_2.substring(0, fileName_tAFOX_2.lastIndexOf("."))
                            : fileName_tAFOX_2;
                }
                java.io.File createFiletAFOX_2 = new java.io.File(fileName_tAFOX_2);

                if (!createFiletAFOX_2.exists()) {
                    (new java.io.File(fileName_tAFOX_2.substring(0, fileName_tAFOX_2.lastIndexOf("/")))).mkdirs();
                    needRoot_tAFOX_2 = true;
                }

                java.util.List<java.util.List<String>> groupbyList_tAFOX_2 = new java.util.ArrayList<java.util.List<String>>();
                java.util.Map<String, String> valueMap_tAFOX_2 = new java.util.HashMap<String, String>();

                class NestXMLTool_tAFOX_2 {
                    public void parseAndAdd(org.dom4j.Element nestRoot, String value) {
                        try {
                            org.dom4j.Document doc4Str = org.dom4j.DocumentHelper
                                    .parseText("<root>" + value + "</root>");
                            nestRoot.setContent(doc4Str.getRootElement().content());
                        } catch (java.lang.Exception e) {
                            // e.printStackTrace();
                            nestRoot.setText(value);
                        }
                    }

                    public void setText(org.dom4j.Element element, String value) {
                        if (value.startsWith("<![CDATA[") && value.endsWith("]]>")) {
                            String text = value.substring(9, value.length() - 3);
                            element.addCDATA(text);
                        } else {
                            element.setText(value);
                        }
                    }

                    public void appendContent(org.dom4j.Element element, org.dom4j.Document doc) {
                        element.appendContent(doc);
                    }

                    public void replaceDefaultNameSpace(org.dom4j.Element nestRoot) {
                        if (nestRoot != null) {
                            boolean isDefaultNameSpaceAtRoot = ""
                                    .equals(nestRoot.getQName().getNamespace().getPrefix());
                            for (org.dom4j.Element tmp : (java.util.List<org.dom4j.Element>) nestRoot.elements()) {
                                if (("").equals(tmp.getQName().getNamespace().getURI())
                                        && ("").equals(tmp.getQName().getNamespace().getPrefix())
                                        && isDefaultNameSpaceAtRoot) {
                                    tmp.setQName(org.dom4j.DocumentHelper.createQName(tmp.getName(),
                                            nestRoot.getQName().getNamespace()));
                                }
                                replaceDefaultNameSpace(tmp);
                            }
                        }
                    }

                    public void removeEmptyElement(org.dom4j.Element root) {
                        if (root != null) {
                            for (org.dom4j.Element tmp : (java.util.List<org.dom4j.Element>) root.elements()) {
                                removeEmptyElement(tmp);
                            }
                            if (root.content().size() == 0 && root.attributes().size() == 0
                                    && root.declaredNamespaces().size() == 0) {
                                if (root.getParent() != null) {
                                    root.getParent().remove(root);
                                }
                            }
                        }
                    }

                    /**
                     * remove the whiteSpace Node between the elements when
                     * appending the source file under dom4j
                     * 
                     * @param root
                     */
                    public void removeWhiteSpaceTextNode(org.dom4j.Element root) {
                        if (root != null) {
                            List<org.dom4j.Node> textNodes = new java.util.ArrayList<org.dom4j.Node>();
                            for (int i = 0; i < root.nodeCount(); i++) {
                                if (root.node(i).getNodeType() == org.dom4j.Node.ELEMENT_NODE) {
                                    removeWhiteSpaceTextNode((org.dom4j.Element) root.node(i));
                                } else if (root.node(i).getNodeType() == org.dom4j.Node.TEXT_NODE) {
                                    textNodes.add(root.node(i));
                                }
                            }
                            if (root.nodeCount() > 1) { // when
                                // root.nodeCount==1,
                                // that means the text
                                // node is the content
                                // of the element
                                for (org.dom4j.Node textNode : textNodes) {
                                    if (textNode.getText() == null || "".equals(textNode.getText().trim())) {
                                        root.remove(textNode);
                                    }
                                }
                            }
                        }
                    }
                }

                NestXMLTool_tAFOX_2 nestXMLTool_tAFOX_2 = new NestXMLTool_tAFOX_2();
                // sort group root element for judgement of group
                java.util.List<org.dom4j.Element> groupElementList_tAFOX_2 = new java.util.ArrayList<org.dom4j.Element>();
                org.dom4j.Element root4Group_tAFOX_2 = null;
                org.dom4j.Document doc_tAFOX_2 = null;

                doc_tAFOX_2 = org.dom4j.DocumentHelper.createDocument();

                org.dom4j.io.OutputFormat format_tAFOX_2 = org.dom4j.io.OutputFormat.createPrettyPrint();

                format_tAFOX_2.setTrimText(false);
                format_tAFOX_2.setEncoding("UTF-8");

                int[] orders_tAFOX_2 = new int[1];

                /**
                 * [tAdvancedFileOutputXML_2 begin ] stop
                 */

                /**
                 * [tLogRow_2 begin ] start
                 */

                ok_Hash.put("tLogRow_2", false);
                start_Hash.put("tLogRow_2", System.currentTimeMillis());

                currentComponent = "tLogRow_2";

                int tos_count_tLogRow_2 = 0;

                /**
                 * [tLogRow_2 begin ] stop
                 */

                /**
                 * [tExtractDelimitedFields_1 begin ] start
                 */

                ok_Hash.put("tExtractDelimitedFields_1", false);
                start_Hash.put("tExtractDelimitedFields_1", System.currentTimeMillis());

                currentComponent = "tExtractDelimitedFields_1";

                int tos_count_tExtractDelimitedFields_1 = 0;

                int nb_line_tExtractDelimitedFields_1 = 0;

                /**
                 * [tExtractDelimitedFields_1 begin ] stop
                 */

                /**
                 * [tNormalize_2 begin ] start
                 */

                ok_Hash.put("tNormalize_2", false);
                start_Hash.put("tNormalize_2", System.currentTimeMillis());

                currentComponent = "tNormalize_2";

                int tos_count_tNormalize_2 = 0;

                int nb_line_tNormalize_2 = 0;
                String tmp_tNormalize_2 = null;
                StringBuilder currentRecord_tNormalize_2 = null;
                String[] normalizeRecord_tNormalize_2 = null;
                java.util.Set<String> recordSet_tNormalize_2 = new java.util.HashSet<String>();

                /**
                 * [tNormalize_2 begin ] stop
                 */

                /**
                 * [tMap_1 begin ] start
                 */

                ok_Hash.put("tMap_1", false);
                start_Hash.put("tMap_1", System.currentTimeMillis());

                currentComponent = "tMap_1";

                int tos_count_tMap_1 = 0;

                // ###############################
                // # Lookup's keys initialization

                org.talend.designer.components.lookup.memory.AdvancedMemoryLookup<propertiesStruct> tHash_Lookup_properties = (org.talend.designer.components.lookup.memory.AdvancedMemoryLookup<propertiesStruct>) ((org.talend.designer.components.lookup.memory.AdvancedMemoryLookup<propertiesStruct>) globalMap
                        .get("tHash_Lookup_properties"));

                tHash_Lookup_properties.initGet();

                propertiesStruct propertiesHashKey = new propertiesStruct();
                propertiesStruct propertiesDefault = new propertiesStruct();
                // ###############################

                // ###############################
                // # Vars initialization
                class Var__tMap_1__Struct {
                    String filename;
                    String filepath;
                    String fileext;
                    String dateStamp;
                    String uuidbase;
                    String mdUuid;
                    String fcatUuid;
                    String layerName;
                    String east;
                    String west;
                    String south;
                    String north;
                    String mdIndividualName;
                    String mdOrganisationName;
                    String mdPositionName;
                    String mdVoice;
                    String mdDeliveryPoint;
                    String mdCity;
                    String mdAdministrativeArea;
                    String mdPostalCode;
                    String mdCountry;
                    String mdEmail;
                    String individualName;
                    String organisationName;
                    String positionName;
                    String voice;
                    String deliveryPoint;
                    String city;
                    String administrativeArea;
                    String postalCode;
                    String country;
                    String email;
                    String title;
                    String srs;
                }
                Var__tMap_1__Struct Var__tMap_1 = new Var__tMap_1__Struct();
                // ###############################

                // ###############################
                // # Outputs initialization
                iso19115Struct iso19115_tmp = new iso19115Struct();
                // ###############################

                /**
                 * [tMap_1 begin ] stop
                 */

                /**
                 * [sGdalInfoInput_2 begin ] start
                 */

                ok_Hash.put("sGdalInfoInput_2", false);
                start_Hash.put("sGdalInfoInput_2", System.currentTimeMillis());

                currentComponent = "sGdalInfoInput_2";

                int tos_count_sGdalInfoInput_2 = 0;

                // Fixed number of line. Only one row to extract information.
                int nb_line_sGdalInfoInput_2 = 1;

                /* Initialize GDAL main variables */
                org.gdal.gdal.Dataset dataset_sGdalInfoInput_2 = null;
                org.gdal.gdal.Driver driver_sGdalInfoInput_2 = null;
                org.gdal.osr.SpatialReference proj_sGdalInfoInput_2, latlon_sGdalInfoInput_2 = null;
                org.gdal.osr.CoordinateTransformation transform_sGdalInfoInput_2 = null;

                /* Initialize JTS main variables */
                com.vividsolutions.jts.geom.GeometryFactory gFact_sGdalInfoInput_2 = new com.vividsolutions.jts.geom.GeometryFactory();

                /* Initialize variables */
                String srs_sGdalInfoInput_2 = null;
                org.opengis.referencing.crs.CoordinateReferenceSystem crs_sGdalInfoInput_2 = null;
                // Default SRS EPSG code, if none is found
                int epsg_code_sGdalInfoInput_2 = -1;
                String datasetName_sGdalInfoInput_2 = /**
                                                      * Start field
                                                      * sGdalInfoInput_2:FILENAME
                                                      */
                        context.file/** End field sGdalInfoInput_2:FILENAME */
                ;
                String FS_sGdalInfoInput_2 = /**
                                             * Start field
                                             * sGdalInfoInput_2:FIELD_SEPARATOR
                                             */
                        " | "/** End field sGdalInfoInput_2:FIELD_SEPARATOR */
                ;
                int nbErrors_sGdalInfoInput_2 = 0;
                String errors_sGdalInfoInput_2 = "";

                // Register all known configured GDAL drivers.
                try {
                    org.gdal.gdal.gdal.AllRegister();
                } catch (java.lang.UnsatisfiedLinkError e) {
                    System.err.println(
                            "In order to use GDAL/OGR in Talend, the java.library.path variable should point to GDAL library.");
                    System.err.println(
                            "To set this property, go to the Run view > Advanced settings > Use specific JVM Arguments");
                    System.err.println("and add a new argument:");
                    System.err.println("  -Djava.library.path=/path/to/gdal/swig/java");
                    System.err.println("");
                    e.printStackTrace();
                    // Aborting due to wrong GDAL driver configuration
                    throw e;
                }

                // Open a GDAL dataset
                dataset_sGdalInfoInput_2 = org.gdal.gdal.gdal.Open(datasetName_sGdalInfoInput_2,
                        org.gdal.gdalconst.gdalconstConstants.GA_ReadOnly);

                if (dataset_sGdalInfoInput_2 == null) {
                    nbErrors_sGdalInfoInput_2++;
                    errors_sGdalInfoInput_2 = "FAILURE: " + "Unable to open datasource `"
                            + datasetName_sGdalInfoInput_2 + "' with the GDAL drivers. "
                            + "Dataset is null : GDALOpen failed - " + org.gdal.gdal.gdal.GetLastErrorNo() + ". "
                            + org.gdal.gdal.gdal.GetLastErrorMsg();
                    System.err.println(errors_sGdalInfoInput_2);
                    for (int iDriver = 0; iDriver < org.gdal.gdal.gdal.GetDriverCount(); iDriver++) {
                        System.err.println("  -> " + org.gdal.gdal.gdal.GetDriver(iDriver).getLongName());
                    }
                    System.err.println("Drivers number " + org.gdal.gdal.gdal.GetDriverCount());
                } else {

                    // Get current GDAL driver
                    driver_sGdalInfoInput_2 = dataset_sGdalInfoInput_2.GetDriver();

                    /* Handle Projection - lat/long transformation */
                    String projection_sGdalInfoInput_2 = dataset_sGdalInfoInput_2.GetProjectionRef();
                    if (projection_sGdalInfoInput_2 != null && projection_sGdalInfoInput_2.length() > 0) {
                        proj_sGdalInfoInput_2 = new org.gdal.osr.SpatialReference(projection_sGdalInfoInput_2);
                        if (proj_sGdalInfoInput_2 == null) {
                            // No projection
                        } else {
                            srs_sGdalInfoInput_2 = proj_sGdalInfoInput_2.ExportToPrettyWkt(0);
                            if ("EPSG".equals(proj_sGdalInfoInput_2.GetAuthorityName(null))) {
                                epsg_code_sGdalInfoInput_2 = Integer
                                        .parseInt(proj_sGdalInfoInput_2.GetAuthorityCode(null));
                                try {
                                    crs_sGdalInfoInput_2 = org.geotools.referencing.CRS
                                            .decode("EPSG:" + epsg_code_sGdalInfoInput_2);
                                } catch (Exception e) {
                                    System.err.println("Error trying to identify SRS from EPSG code. Error is: "
                                            + e.getMessage() + ".");

                                }
                            } else {
                                // use WKT and init GeoTools CRS
                                try {
                                    if (srs_sGdalInfoInput_2 != null) {
                                        crs_sGdalInfoInput_2 = org.geotools.referencing.CRS
                                                .parseWKT(srs_sGdalInfoInput_2);
                                    }
                                } catch (Exception e) {
                                    System.err.println(
                                            "Error trying to identify SRS from WKT. Error is: " + e.getMessage());
                                }
                            }
                            latlon_sGdalInfoInput_2 = proj_sGdalInfoInput_2.CloneGeogCS();
                        }

                        if (latlon_sGdalInfoInput_2 != null) {
                            org.gdal.gdal.gdal.PushErrorHandler("CPLQuietErrorHandler");
                            transform_sGdalInfoInput_2 = new org.gdal.osr.CoordinateTransformation(
                                    proj_sGdalInfoInput_2, latlon_sGdalInfoInput_2);
                            org.gdal.gdal.gdal.PopErrorHandler();
                            latlon_sGdalInfoInput_2.delete();
                            if (org.gdal.gdal.gdal.GetLastErrorMsg()
                                    .indexOf("Unable to load PROJ.4 library") != -1) {
                                transform_sGdalInfoInput_2 = null;
                            }
                        }
                    }

                    /* Affine GeoTransform */
                    org.talend.sdi.geometry.Geometry geom_origin_sGdalInfoInput_2 = null;
                    String pixel_size_sGdalInfoInput_2 = null;
                    String geotransform_sGdalInfoInput_2 = null;
                    double[] adfGeoTransform_sGdalInfoInput_2 = new double[6];
                    dataset_sGdalInfoInput_2.GetGeoTransform(adfGeoTransform_sGdalInfoInput_2);

                    if (adfGeoTransform_sGdalInfoInput_2[2] == 0.0 && adfGeoTransform_sGdalInfoInput_2[4] == 0.0) {
                        /* Create point origin */
                        com.vividsolutions.jts.geom.Coordinate origin_coord_sGdalInfoInput_2 = new com.vividsolutions.jts.geom.Coordinate(
                                adfGeoTransform_sGdalInfoInput_2[0], adfGeoTransform_sGdalInfoInput_2[3]);
                        geom_origin_sGdalInfoInput_2 = new org.talend.sdi.geometry.Geometry(
                                (com.vividsolutions.jts.geom.Geometry) gFact_sGdalInfoInput_2
                                        .createPoint(origin_coord_sGdalInfoInput_2));
                        /* Pixel size */
                        pixel_size_sGdalInfoInput_2 = adfGeoTransform_sGdalInfoInput_2[1] + ","
                                + adfGeoTransform_sGdalInfoInput_2[5];
                    } else {
                        geotransform_sGdalInfoInput_2 = adfGeoTransform_sGdalInfoInput_2[0] + ", "
                                + adfGeoTransform_sGdalInfoInput_2[1] + ", " + adfGeoTransform_sGdalInfoInput_2[2]
                                + "\n " + adfGeoTransform_sGdalInfoInput_2[3] + ", "
                                + adfGeoTransform_sGdalInfoInput_2[4] + ", " + adfGeoTransform_sGdalInfoInput_2[5];
                    }

                    /* Compute extent */
                    java.util.HashMap<String, double[]> corners_sGdalInfoInput_2 = new java.util.HashMap<String, double[]>(
                            5);
                    double[] upper_left_corner_sGdalInfoInput_2 = { 0.0, 0.0 };
                    double[] lower_left_corner_sGdalInfoInput_2 = { 0.0,
                            dataset_sGdalInfoInput_2.getRasterYSize() };
                    double[] upper_right_corner_sGdalInfoInput_2 = { dataset_sGdalInfoInput_2.getRasterXSize(),
                            0.0 };
                    double[] lower_right_corner_sGdalInfoInput_2 = { dataset_sGdalInfoInput_2.getRasterXSize(),
                            dataset_sGdalInfoInput_2.getRasterYSize() };
                    double[] center_sGdalInfoInput_2 = { dataset_sGdalInfoInput_2.getRasterXSize() / 2.0,
                            dataset_sGdalInfoInput_2.getRasterYSize() / 2.0 };

                    corners_sGdalInfoInput_2.put("upperLeft", upper_left_corner_sGdalInfoInput_2);
                    corners_sGdalInfoInput_2.put("lowerLeft", lower_left_corner_sGdalInfoInput_2);
                    corners_sGdalInfoInput_2.put("upperRight", upper_right_corner_sGdalInfoInput_2);
                    corners_sGdalInfoInput_2.put("lowerRight", lower_right_corner_sGdalInfoInput_2);
                    corners_sGdalInfoInput_2.put("center", center_sGdalInfoInput_2);

                    java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate> geoXY_sGdalInfoInput_2 = new java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate>(
                            5);
                    java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate> latlonXY_sGdalInfoInput_2 = new java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate>(
                            5);

                    for (String corner_sGdalInfoInput_2 : corners_sGdalInfoInput_2.keySet()) {
                        com.vividsolutions.jts.geom.Coordinate coord_sGdalInfoInput_2 = new com.vividsolutions.jts.geom.Coordinate();
                        if (adfGeoTransform_sGdalInfoInput_2[0] == 0 && adfGeoTransform_sGdalInfoInput_2[1] == 0
                                && adfGeoTransform_sGdalInfoInput_2[2] == 0
                                && adfGeoTransform_sGdalInfoInput_2[3] == 0
                                && adfGeoTransform_sGdalInfoInput_2[4] == 0
                                && adfGeoTransform_sGdalInfoInput_2[5] == 0) {
                            coord_sGdalInfoInput_2.x = corners_sGdalInfoInput_2.get(corner_sGdalInfoInput_2)[0];
                            coord_sGdalInfoInput_2.y = corners_sGdalInfoInput_2.get(corner_sGdalInfoInput_2)[1];
                        } else {
                            coord_sGdalInfoInput_2.x = adfGeoTransform_sGdalInfoInput_2[0]
                                    + adfGeoTransform_sGdalInfoInput_2[1]
                                            * corners_sGdalInfoInput_2.get(corner_sGdalInfoInput_2)[0]
                                    + adfGeoTransform_sGdalInfoInput_2[2]
                                            * corners_sGdalInfoInput_2.get(corner_sGdalInfoInput_2)[1];
                            coord_sGdalInfoInput_2.y = adfGeoTransform_sGdalInfoInput_2[3]
                                    + adfGeoTransform_sGdalInfoInput_2[4]
                                            * corners_sGdalInfoInput_2.get(corner_sGdalInfoInput_2)[0]
                                    + adfGeoTransform_sGdalInfoInput_2[5]
                                            * corners_sGdalInfoInput_2.get(corner_sGdalInfoInput_2)[1];
                        }
                        geoXY_sGdalInfoInput_2.put(corner_sGdalInfoInput_2, coord_sGdalInfoInput_2);

                        // lat/long transformation
                        if (transform_sGdalInfoInput_2 != null) {
                            double[] transPoint_sGdalInfoInput_2 = new double[3];
                            transform_sGdalInfoInput_2.TransformPoint(transPoint_sGdalInfoInput_2,
                                    coord_sGdalInfoInput_2.x, coord_sGdalInfoInput_2.y, 0);
                            latlonXY_sGdalInfoInput_2.put(corner_sGdalInfoInput_2,
                                    new com.vividsolutions.jts.geom.Coordinate(transPoint_sGdalInfoInput_2[0],
                                            transPoint_sGdalInfoInput_2[1]));
                        }
                    }

                    fromActualFile.driver = driver_sGdalInfoInput_2.getShortName() + "/"
                            + driver_sGdalInfoInput_2.getLongName();
                    // Loop over associated files.
                    String files_sGdalInfoInput_2 = null;
                    java.util.Vector<String> fileList_sGdalInfoInput_2 = dataset_sGdalInfoInput_2.GetFileList();
                    boolean singleFile_sGdalInfoInput_2 = true;
                    for (String file_sGdalInfoInput_2 : fileList_sGdalInfoInput_2) {
                        if (singleFile_sGdalInfoInput_2) {
                            files_sGdalInfoInput_2 = file_sGdalInfoInput_2;
                            singleFile_sGdalInfoInput_2 = false;
                        } else {
                            files_sGdalInfoInput_2 += FS_sGdalInfoInput_2 + file_sGdalInfoInput_2;
                        }
                    }
                    fromActualFile.files = files_sGdalInfoInput_2;
                    fromActualFile.x_size = dataset_sGdalInfoInput_2.getRasterXSize();
                    fromActualFile.y_size = dataset_sGdalInfoInput_2.getRasterYSize();
                    fromActualFile.srs = srs_sGdalInfoInput_2;
                    fromActualFile.epsg_code = epsg_code_sGdalInfoInput_2;
                    fromActualFile.origin = geom_origin_sGdalInfoInput_2;
                    fromActualFile.pixel_size = pixel_size_sGdalInfoInput_2;
                    fromActualFile.geotransform = geotransform_sGdalInfoInput_2;
                    // the center of the extent (Point)
                    org.talend.sdi.geometry.Geometry geom_center_sGdalInfoInput_2 = new org.talend.sdi.geometry.Geometry(
                            (com.vividsolutions.jts.geom.Geometry) gFact_sGdalInfoInput_2
                                    .createPoint(geoXY_sGdalInfoInput_2.get("center")));
                    if (crs_sGdalInfoInput_2 != null) {
                        geom_center_sGdalInfoInput_2.setCRS(crs_sGdalInfoInput_2);
                    }
                    fromActualFile.center = geom_center_sGdalInfoInput_2;
                    // the geo extent (Polygon)
                    com.vividsolutions.jts.geom.Coordinate[] geoCoords_sGdalInfoInput_2 = new com.vividsolutions.jts.geom.Coordinate[5];
                    geoCoords_sGdalInfoInput_2[0] = geoXY_sGdalInfoInput_2.get("upperLeft");
                    geoCoords_sGdalInfoInput_2[1] = geoXY_sGdalInfoInput_2.get("lowerLeft");
                    geoCoords_sGdalInfoInput_2[2] = geoXY_sGdalInfoInput_2.get("lowerRight");
                    geoCoords_sGdalInfoInput_2[3] = geoXY_sGdalInfoInput_2.get("upperRight");
                    geoCoords_sGdalInfoInput_2[4] = geoXY_sGdalInfoInput_2.get("upperLeft");

                    org.talend.sdi.geometry.Geometry geo_extent_sGdalInfoInput_2 = new org.talend.sdi.geometry.Geometry(
                            (com.vividsolutions.jts.geom.Geometry) gFact_sGdalInfoInput_2.createPolygon(
                                    gFact_sGdalInfoInput_2.createLinearRing(geoCoords_sGdalInfoInput_2), null));
                    if (crs_sGdalInfoInput_2 != null) {
                        geo_extent_sGdalInfoInput_2.setCRS(crs_sGdalInfoInput_2);
                    }
                    fromActualFile.geo_extent = geo_extent_sGdalInfoInput_2;
                    // the lat/long extent (Polygon)
                    org.talend.sdi.geometry.Geometry latlon_extent_sGdalInfoInput_2 = null;
                    if (!latlonXY_sGdalInfoInput_2.isEmpty()) {
                        com.vividsolutions.jts.geom.Coordinate[] latlonCoords_sGdalInfoInput_2 = new com.vividsolutions.jts.geom.Coordinate[5];
                        latlonCoords_sGdalInfoInput_2[0] = latlonXY_sGdalInfoInput_2.get("upperLeft");
                        latlonCoords_sGdalInfoInput_2[1] = latlonXY_sGdalInfoInput_2.get("lowerLeft");
                        latlonCoords_sGdalInfoInput_2[2] = latlonXY_sGdalInfoInput_2.get("lowerRight");
                        latlonCoords_sGdalInfoInput_2[3] = latlonXY_sGdalInfoInput_2.get("upperRight");
                        latlonCoords_sGdalInfoInput_2[4] = latlonXY_sGdalInfoInput_2.get("upperLeft");

                        latlon_extent_sGdalInfoInput_2 = new org.talend.sdi.geometry.Geometry(
                                (com.vividsolutions.jts.geom.Geometry) gFact_sGdalInfoInput_2.createPolygon(
                                        gFact_sGdalInfoInput_2.createLinearRing(latlonCoords_sGdalInfoInput_2),
                                        null));
                        latlon_extent_sGdalInfoInput_2.setCRS(org.geotools.referencing.CRS.decode("EPSG:4326"));
                    }

                    fromActualFile.latlon_extent = latlon_extent_sGdalInfoInput_2;
                    // Loop over the bands if any.
                    String bandsInfo_sGdalInfoInput_2 = "";
                    for (int iBand_sGdalInfoInput_2 = 0; iBand_sGdalInfoInput_2 < dataset_sGdalInfoInput_2
                            .getRasterCount(); iBand_sGdalInfoInput_2++) {
                        org.gdal.gdal.Band band_sGdalInfoInput_2 = dataset_sGdalInfoInput_2
                                .GetRasterBand(iBand_sGdalInfoInput_2 + 1);
                        int[] blockXSize_sGdalInfoInput_2 = new int[1];
                        int[] blockYSize_sGdalInfoInput_2 = new int[1];
                        band_sGdalInfoInput_2.GetBlockSize(blockXSize_sGdalInfoInput_2,
                                blockYSize_sGdalInfoInput_2);
                        if (iBand_sGdalInfoInput_2 > 0) {
                            bandsInfo_sGdalInfoInput_2 += FS_sGdalInfoInput_2;
                        }

                        bandsInfo_sGdalInfoInput_2 += "Band : " + (iBand_sGdalInfoInput_2 + 1) + " Block="
                                + blockXSize_sGdalInfoInput_2[0] + "x" + blockYSize_sGdalInfoInput_2[0] + " Type="
                                + org.gdal.gdal.gdal.GetDataTypeName(band_sGdalInfoInput_2.getDataType())
                                + ", ColorInterp=" + org.gdal.gdal.gdal.GetColorInterpretationName(
                                        band_sGdalInfoInput_2.GetRasterColorInterpretation());
                    }
                    fromActualFile.bands = bandsInfo_sGdalInfoInput_2;

                    /**
                     * [sGdalInfoInput_2 begin ] stop
                     */

                    /**
                     * [sGdalInfoInput_2 main ] start
                     */

                    currentComponent = "sGdalInfoInput_2";

                    tos_count_sGdalInfoInput_2++;

                    /**
                     * [sGdalInfoInput_2 main ] stop
                     */

                    /**
                     * [tMap_1 main ] start
                     */

                    currentComponent = "tMap_1";

                    boolean hasCasePrimitiveKeyWithNull_tMap_1 = false;

                    // ###############################
                    // # Input tables (lookups)
                    boolean rejectedInnerJoin_tMap_1 = false;
                    boolean mainRowRejected_tMap_1 = false;

                    // /////////////////////////////////////////////
                    // Starting Lookup Table "properties"
                    // /////////////////////////////////////////////

                    boolean forceLoopproperties = false;

                    propertiesStruct propertiesObjectFromLookup = null;

                    if (!rejectedInnerJoin_tMap_1) { // G_TM_M_020

                        tHash_Lookup_properties.lookup(propertiesHashKey);

                        if (!tHash_Lookup_properties.hasNext()) { // G_TM_M_090

                            forceLoopproperties = true;

                        } // G_TM_M_090

                    } // G_TM_M_020

                    else { // G 20 - G 21
                        forceLoopproperties = true;
                    } // G 21

                    propertiesStruct properties = null;

                    while ((tHash_Lookup_properties != null && tHash_Lookup_properties.hasNext())
                            || forceLoopproperties) { // G_TM_M_043

                        // CALL close loop of lookup 'properties'

                        propertiesStruct fromLookup_properties = null;
                        properties = propertiesDefault;

                        if (!forceLoopproperties) { // G 46

                            fromLookup_properties = tHash_Lookup_properties.next();

                            if (fromLookup_properties != null) {
                                properties = fromLookup_properties;
                            }

                            if (!rejectedInnerJoin_tMap_1 &&

                                    !(

                                    "geo".equals(properties.dataType)

                                    )

                            ) { // G 016

                                fromLookup_properties = null;
                                properties = propertiesDefault;

                            } // G 016

                            if (fromLookup_properties == null && !rejectedInnerJoin_tMap_1) { // G 017

                                continue;

                            } // G 017

                        } // G 46

                        forceLoopproperties = false;

                        // ###############################
                        { // start of Var scope

                            // ###############################
                            // # Vars tables

                            Var__tMap_1__Struct Var = Var__tMap_1;
                            Var.filename = new java.io.File(context.file).getName();
                            Var.filepath = context.file;
                            Var.fileext = Var.filename.substring(Var.filename.lastIndexOf(".") + 1);
                            Var.dateStamp = TalendDate.formatDate("yyyy-MM-dd'T'HH:mm:ss",
                                    TalendDate.getCurrentDate());
                            Var.uuidbase = Var.filename;
                            Var.mdUuid = Utility.sha256Digest(Var.uuidbase);
                            Var.fcatUuid = Utility.sha256Digest(Var.uuidbase + "#iso19110");
                            Var.layerName = StringHandling.INDEX(Var.fileext, ".") > 0
                                    ? (Var.filename.substring(0, Var.filename.indexOf(Var.fileext) - 1))
                                    : (Var.filename);
                            Var.east = fromActualFile.latlon_extent != null
                                    ? GeometryOperation.GETCOORDINATE(fromActualFile.latlon_extent, 2, "X") + ""
                                    : (context.defaultProjection != null
                                            ? GeometryOperation
                                                    .GETCOORDINATE(
                                                            GeometryOperation.PROJ(fromActualFile.geo_extent,
                                                                    context.defaultProjection, "EPSG:4326", false),
                                                            2, "X")
                                                    + ""
                                            : context.defaultXMax);
                            Var.west = fromActualFile.latlon_extent != null
                                    ? GeometryOperation.GETCOORDINATE(fromActualFile.latlon_extent, 0, "X") + ""
                                    : (context.defaultProjection != null
                                            ? GeometryOperation
                                                    .GETCOORDINATE(
                                                            GeometryOperation.PROJ(fromActualFile.geo_extent,
                                                                    context.defaultProjection, "EPSG:4326", false),
                                                            0, "X")
                                                    + ""
                                            : context.defaultXMin);
                            Var.south = fromActualFile.latlon_extent != null
                                    ? GeometryOperation.GETCOORDINATE(fromActualFile.latlon_extent, 2, "Y") + ""
                                    : (context.defaultProjection != null
                                            ? GeometryOperation
                                                    .GETCOORDINATE(
                                                            GeometryOperation.PROJ(fromActualFile.geo_extent,
                                                                    context.defaultProjection, "EPSG:4326", false),
                                                            2, "Y")
                                                    + ""
                                            : context.defaultYMin);
                            Var.north = fromActualFile.latlon_extent != null
                                    ? GeometryOperation.GETCOORDINATE(fromActualFile.latlon_extent, 0, "Y") + ""
                                    : (context.defaultProjection != null
                                            ? GeometryOperation
                                                    .GETCOORDINATE(
                                                            GeometryOperation.PROJ(fromActualFile.geo_extent,
                                                                    context.defaultProjection, "EPSG:4326", false),
                                                            0, "Y")
                                                    + ""
                                            : context.defaultYMax);
                            Var.mdIndividualName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                    context.mdIndividualName, properties.mdIndividualName);
                            Var.mdOrganisationName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                    context.mdOrganisation, properties.mdOrganisationName);
                            Var.mdPositionName = ExtractorStringUtils
                                    .returnFirstNotNullOrBlank(context.mdPositionName, properties.mdPositionName);
                            Var.mdVoice = ExtractorStringUtils.returnFirstNotNullOrBlank(context.mdVoice,
                                    properties.mdVoice);
                            Var.mdDeliveryPoint = ExtractorStringUtils
                                    .returnFirstNotNullOrBlank(context.mdDeliveryPoint, properties.mdDeliveryPoint);
                            Var.mdCity = ExtractorStringUtils.returnFirstNotNullOrBlank(context.mdCity,
                                    properties.mdCity);
                            Var.mdAdministrativeArea = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                    context.mdAdministrativeArea, properties.mdAdministrativeArea);
                            Var.mdPostalCode = ExtractorStringUtils.returnFirstNotNullOrBlank(context.mdPostalCode,
                                    properties.mdPostalCode);
                            Var.mdCountry = ExtractorStringUtils.returnFirstNotNullOrBlank(context.mdCountry,
                                    properties.mdCountry);
                            Var.mdEmail = ExtractorStringUtils.returnFirstNotNullOrBlank(context.mdEmail,
                                    properties.mdEmail);
                            Var.individualName = ExtractorStringUtils
                                    .returnFirstNotNullOrBlank(context.individualName, properties.individualName);
                            Var.organisationName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                    context.organisationName, properties.organisationName);
                            Var.positionName = ExtractorStringUtils.returnFirstNotNullOrBlank(context.positionName,
                                    properties.positionName);
                            Var.voice = ExtractorStringUtils.returnFirstNotNullOrBlank(context.voice,
                                    properties.voice);
                            Var.deliveryPoint = ExtractorStringUtils
                                    .returnFirstNotNullOrBlank(context.deliveryPoint, properties.deliveryPoint);
                            Var.city = ExtractorStringUtils.returnFirstNotNullOrBlank(context.city,
                                    properties.city);
                            Var.administrativeArea = ExtractorStringUtils
                                    .returnFirstNotNullOrBlank(context.administrativeArea, properties.adminArea);
                            Var.postalCode = ExtractorStringUtils.returnFirstNotNullOrBlank(context.postalCode,
                                    properties.postalCode);
                            Var.country = ExtractorStringUtils.returnFirstNotNullOrBlank(context.country,
                                    properties.country);
                            Var.email = ExtractorStringUtils.returnFirstNotNullOrBlank(context.email,
                                    properties.email);
                            Var.title = context.titlePrefixRaster + Var.filename;
                            Var.srs = fromActualFile.epsg_code == -1 ? context.defaultProjection
                                    : "EPSG:" + fromActualFile.epsg_code;// ###############################
                            // ###############################
                            // # Output tables

                            iso19115 = null;

                            // # Output table : 'iso19115'
                            iso19115_tmp.mdIdentifier = Var.mdUuid;
                            iso19115_tmp.mdLanguage = null;
                            iso19115_tmp.mdCharacterSetCode = null;
                            iso19115_tmp.ciRoleCode = null;
                            iso19115_tmp.mdOrganisation = Var.mdOrganisationName;
                            iso19115_tmp.mdVoice = Var.mdVoice;
                            iso19115_tmp.mdIndividualName = Var.mdIndividualName;
                            iso19115_tmp.mdPositionName = Var.mdPositionName;
                            iso19115_tmp.mdDeliveryPoint = Var.mdDeliveryPoint;
                            iso19115_tmp.mdCity = Var.mdCity;
                            iso19115_tmp.mdAdministrativeArea = Var.mdAdministrativeArea;
                            iso19115_tmp.mdPostalCode = Var.mdPostalCode;
                            iso19115_tmp.mdCountry = Var.mdCountry;
                            iso19115_tmp.mdEmail = Var.mdEmail;
                            iso19115_tmp.mdDate = Var.dateStamp;
                            iso19115_tmp.title = Var.title;
                            iso19115_tmp.organisationName = Var.organisationName;
                            iso19115_tmp.voice = Var.voice;
                            iso19115_tmp.email = Var.email;
                            iso19115_tmp.individualName = Var.individualName;
                            iso19115_tmp.positionName = Var.positionName;
                            iso19115_tmp.deliveryPoint = Var.deliveryPoint;
                            iso19115_tmp.city = Var.city;
                            iso19115_tmp.administrativeArea = Var.administrativeArea;
                            iso19115_tmp.postalCode = Var.postalCode;
                            iso19115_tmp.country = Var.country;
                            iso19115_tmp.spatialRepresentationType = "grid";
                            iso19115_tmp.scaleDenominator = properties.scaleDenominator;
                            iso19115_tmp.topicCategoryCode = properties.topicCategoryCode;
                            iso19115_tmp.west = Var.west;
                            iso19115_tmp.east = Var.east;
                            iso19115_tmp.south = Var.south;
                            iso19115_tmp.north = Var.north;
                            iso19115_tmp.mdMaintenanceFrequencyCode = null;
                            iso19115_tmp.keyword = properties.keyword;
                            iso19115_tmp.keyword2 = null;
                            iso19115_tmp.keyword1_theme = null;
                            iso19115_tmp.keyword2_theme = properties.keyword2;
                            iso19115_tmp.useConstraints = properties.useConstraints;
                            iso19115_tmp.scopeCode = null;
                            iso19115_tmp.lineage = null;
                            iso19115_tmp.srs = Var.srs;
                            iso19115_tmp.columnsDef = null;
                            iso19115_tmp.layerName = null;
                            iso19115_tmp.bands = fromActualFile.bands;
                            iso19115 = iso19115_tmp;
                            // ###############################

                        } // end of Var scope

                        rejectedInnerJoin_tMap_1 = false;

                        tos_count_tMap_1++;

                        /**
                         * [tMap_1 main ] stop
                         */
                        // Start of branch "iso19115"
                        if (iso19115 != null) {

                            /**
                             * [tNormalize_2 main ] start
                             */

                            currentComponent = "tNormalize_2";

                            normalizeRecord_tNormalize_2 = new String[1];
                            if (iso19115.bands != null) {
                                if ("".equals(iso19115.bands)) {
                                    normalizeRecord_tNormalize_2[0] = "";
                                } else {

                                    normalizeRecord_tNormalize_2 = iso19115.bands.split("\\|", -1);

                                }
                            }
                            int lastNoEmptyIndex_tNormalize_2 = normalizeRecord_tNormalize_2.length;

                            for (int i_tNormalize_2 = 0; i_tNormalize_2 < lastNoEmptyIndex_tNormalize_2; i_tNormalize_2++) {

                                if (normalizeRecord_tNormalize_2[i_tNormalize_2] != null) {
                                    normalizeRecord_tNormalize_2[i_tNormalize_2] = normalizeRecord_tNormalize_2[i_tNormalize_2]
                                            .trim();
                                }

                                currentRecord_tNormalize_2 = new StringBuilder();
                                nb_line_tNormalize_2++;

                                row2.mdIdentifier = iso19115.mdIdentifier;

                                row2.mdLanguage = iso19115.mdLanguage;

                                row2.mdCharacterSetCode = iso19115.mdCharacterSetCode;

                                row2.ciRoleCode = iso19115.ciRoleCode;

                                row2.mdOrganisation = iso19115.mdOrganisation;

                                row2.mdVoice = iso19115.mdVoice;

                                row2.mdIndividualName = iso19115.mdIndividualName;

                                row2.mdPositionName = iso19115.mdPositionName;

                                row2.mdDeliveryPoint = iso19115.mdDeliveryPoint;

                                row2.mdCity = iso19115.mdCity;

                                row2.mdAdministrativeArea = iso19115.mdAdministrativeArea;

                                row2.mdPostalCode = iso19115.mdPostalCode;

                                row2.mdCountry = iso19115.mdCountry;

                                row2.mdEmail = iso19115.mdEmail;

                                row2.mdDate = iso19115.mdDate;

                                row2.title = iso19115.title;

                                row2.organisationName = iso19115.organisationName;

                                row2.voice = iso19115.voice;

                                row2.email = iso19115.email;

                                row2.individualName = iso19115.individualName;

                                row2.positionName = iso19115.positionName;

                                row2.deliveryPoint = iso19115.deliveryPoint;

                                row2.city = iso19115.city;

                                row2.administrativeArea = iso19115.administrativeArea;

                                row2.postalCode = iso19115.postalCode;

                                row2.country = iso19115.country;

                                row2.spatialRepresentationType = iso19115.spatialRepresentationType;

                                row2.scaleDenominator = iso19115.scaleDenominator;

                                row2.topicCategoryCode = iso19115.topicCategoryCode;

                                row2.west = iso19115.west;

                                row2.east = iso19115.east;

                                row2.south = iso19115.south;

                                row2.north = iso19115.north;

                                row2.mdMaintenanceFrequencyCode = iso19115.mdMaintenanceFrequencyCode;

                                row2.keyword = iso19115.keyword;

                                row2.keyword2 = iso19115.keyword2;

                                row2.keyword1_theme = iso19115.keyword1_theme;

                                row2.keyword2_theme = iso19115.keyword2_theme;

                                row2.useConstraints = iso19115.useConstraints;

                                row2.scopeCode = iso19115.scopeCode;

                                row2.lineage = iso19115.lineage;

                                row2.srs = iso19115.srs;

                                row2.columnsDef = iso19115.columnsDef;

                                row2.layerName = iso19115.layerName;

                                row2.bands = normalizeRecord_tNormalize_2[i_tNormalize_2];

                                tos_count_tNormalize_2++;

                                /**
                                 * [tNormalize_2 main ] stop
                                 */

                                /**
                                 * [tExtractDelimitedFields_1 main ] start
                                 */

                                currentComponent = "tExtractDelimitedFields_1";

                                row1 = null;

                                row1 = new row1Struct();
                                String field_tExtractDelimitedFields_1 = row2.bands;
                                String[] newFields_tExtractDelimitedFields_1 = new String[0];
                                if (field_tExtractDelimitedFields_1 != null) {// C_01
                                    try {
                                        newFields_tExtractDelimitedFields_1 = field_tExtractDelimitedFields_1
                                                .split(",", -1);
                                        int length_tExtractDelimitedFields_1 = newFields_tExtractDelimitedFields_1.length;
                                        for (int i_tExtractDelimitedFields_1 = 0; i_tExtractDelimitedFields_1 < length_tExtractDelimitedFields_1; i_tExtractDelimitedFields_1++) {
                                            newFields_tExtractDelimitedFields_1[i_tExtractDelimitedFields_1] = newFields_tExtractDelimitedFields_1[i_tExtractDelimitedFields_1]
                                                    .trim();
                                        }
                                        row1.mdIdentifier = row2.mdIdentifier;
                                        row1.mdLanguage = row2.mdLanguage;
                                        row1.mdCharacterSetCode = row2.mdCharacterSetCode;
                                        row1.ciRoleCode = row2.ciRoleCode;
                                        row1.mdOrganisation = row2.mdOrganisation;
                                        row1.mdVoice = row2.mdVoice;
                                        row1.mdIndividualName = row2.mdIndividualName;
                                        row1.mdPositionName = row2.mdPositionName;
                                        row1.mdDeliveryPoint = row2.mdDeliveryPoint;
                                        row1.mdCity = row2.mdCity;
                                        row1.mdAdministrativeArea = row2.mdAdministrativeArea;
                                        row1.mdPostalCode = row2.mdPostalCode;
                                        row1.mdCountry = row2.mdCountry;
                                        row1.mdEmail = row2.mdEmail;
                                        row1.mdDate = row2.mdDate;
                                        row1.title = row2.title;
                                        row1.organisationName = row2.organisationName;
                                        row1.voice = row2.voice;
                                        row1.email = row2.email;
                                        row1.individualName = row2.individualName;
                                        row1.positionName = row2.positionName;
                                        row1.deliveryPoint = row2.deliveryPoint;
                                        row1.city = row2.city;
                                        row1.administrativeArea = row2.administrativeArea;
                                        row1.postalCode = row2.postalCode;
                                        row1.country = row2.country;
                                        row1.spatialRepresentationType = row2.spatialRepresentationType;
                                        row1.scaleDenominator = row2.scaleDenominator;
                                        row1.topicCategoryCode = row2.topicCategoryCode;
                                        row1.west = row2.west;
                                        row1.east = row2.east;
                                        row1.south = row2.south;
                                        row1.north = row2.north;
                                        row1.mdMaintenanceFrequencyCode = row2.mdMaintenanceFrequencyCode;
                                        row1.keyword = row2.keyword;
                                        row1.keyword2 = row2.keyword2;
                                        row1.keyword1_theme = row2.keyword1_theme;
                                        row1.keyword2_theme = row2.keyword2_theme;
                                        row1.useConstraints = row2.useConstraints;
                                        row1.scopeCode = row2.scopeCode;
                                        row1.lineage = row2.lineage;
                                        row1.srs = row2.srs;
                                        row1.columnsDef = row2.columnsDef;
                                        row1.layerName = row2.layerName;
                                        row1.bands = row2.bands;
                                        String temp_tExtractDelimitedFields_1 = null;
                                        row1.bandName = 0 >= length_tExtractDelimitedFields_1 ? ""
                                                : newFields_tExtractDelimitedFields_1[0];
                                        row1.bandColorInterpret = 1 >= length_tExtractDelimitedFields_1 ? ""
                                                : newFields_tExtractDelimitedFields_1[1];
                                        nb_line_tExtractDelimitedFields_1++;
                                    } catch (java.lang.Exception ex_tExtractDelimitedFields_1) {
                                        System.err.println(ex_tExtractDelimitedFields_1.getMessage());
                                        row1 = null;
                                    }

                                    tos_count_tExtractDelimitedFields_1++;

                                    /**
                                     * [tExtractDelimitedFields_1 main ] stop
                                     */
                                    // Start of branch "row1"
                                    if (row1 != null) {

                                        /**
                                         * [tLogRow_2 main ] start
                                         */

                                        currentComponent = "tLogRow_2";

                                        row3 = row1;

                                        tos_count_tLogRow_2++;

                                        /**
                                         * [tLogRow_2 main ] stop
                                         */

                                        /**
                                         * [tAdvancedFileOutputXML_2 main ]
                                         * start
                                         */

                                        currentComponent = "tAdvancedFileOutputXML_2";

                                        nb_line_tAFOX_2++;
                                        valueMap_tAFOX_2.clear();
                                        valueMap_tAFOX_2.put("mdIdentifier",
                                                (row1.mdIdentifier != null ? row1.mdIdentifier.toString() : null));
                                        valueMap_tAFOX_2.put("mdLanguage",
                                                (row1.mdLanguage != null ? row1.mdLanguage.toString() : "eng"));
                                        valueMap_tAFOX_2.put("mdCharacterSetCode",
                                                (row1.mdCharacterSetCode != null
                                                        ? row1.mdCharacterSetCode.toString()
                                                        : "utf-8"));
                                        valueMap_tAFOX_2.put("ciRoleCode",
                                                (row1.ciRoleCode != null ? row1.ciRoleCode.toString()
                                                        : "pointOfContact"));
                                        valueMap_tAFOX_2.put("mdOrganisation",
                                                (row1.mdOrganisation != null ? row1.mdOrganisation.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("mdVoice",
                                                (row1.mdVoice != null ? row1.mdVoice.toString() : null));
                                        valueMap_tAFOX_2.put("mdIndividualName",
                                                (row1.mdIndividualName != null ? row1.mdIndividualName.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("mdPositionName",
                                                (row1.mdPositionName != null ? row1.mdPositionName.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("mdDeliveryPoint",
                                                (row1.mdDeliveryPoint != null ? row1.mdDeliveryPoint.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("mdCity",
                                                (row1.mdCity != null ? row1.mdCity.toString() : null));
                                        valueMap_tAFOX_2.put("mdAdministrativeArea",
                                                (row1.mdAdministrativeArea != null
                                                        ? row1.mdAdministrativeArea.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("mdPostalCode",
                                                (row1.mdPostalCode != null ? row1.mdPostalCode.toString() : null));
                                        valueMap_tAFOX_2.put("mdCountry",
                                                (row1.mdCountry != null ? row1.mdCountry.toString() : null));
                                        valueMap_tAFOX_2.put("mdEmail",
                                                (row1.mdEmail != null ? row1.mdEmail.toString() : null));
                                        valueMap_tAFOX_2.put("mdDate",
                                                (row1.mdDate != null ? row1.mdDate.toString() : null));
                                        valueMap_tAFOX_2.put("title",
                                                (row1.title != null ? row1.title.toString() : null));
                                        valueMap_tAFOX_2.put("organisationName",
                                                (row1.organisationName != null ? row1.organisationName.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("voice",
                                                (row1.voice != null ? row1.voice.toString() : null));
                                        valueMap_tAFOX_2.put("email",
                                                (row1.email != null ? row1.email.toString() : null));
                                        valueMap_tAFOX_2.put("individualName",
                                                (row1.individualName != null ? row1.individualName.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("positionName",
                                                (row1.positionName != null ? row1.positionName.toString() : null));
                                        valueMap_tAFOX_2.put("deliveryPoint",
                                                (row1.deliveryPoint != null ? row1.deliveryPoint.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("city",
                                                (row1.city != null ? row1.city.toString() : null));
                                        valueMap_tAFOX_2.put("administrativeArea",
                                                (row1.administrativeArea != null
                                                        ? row1.administrativeArea.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("postalCode",
                                                (row1.postalCode != null ? row1.postalCode.toString() : null));
                                        valueMap_tAFOX_2.put("country",
                                                (row1.country != null ? row1.country.toString() : null));
                                        valueMap_tAFOX_2.put("spatialRepresentationType",
                                                (row1.spatialRepresentationType != null
                                                        ? row1.spatialRepresentationType.toString()
                                                        : "vector"));
                                        valueMap_tAFOX_2.put("scaleDenominator",
                                                (row1.scaleDenominator != null ? row1.scaleDenominator.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("topicCategoryCode",
                                                (row1.topicCategoryCode != null ? row1.topicCategoryCode.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("west",
                                                (row1.west != null ? row1.west.toString() : null));
                                        valueMap_tAFOX_2.put("east",
                                                (row1.east != null ? row1.east.toString() : null));
                                        valueMap_tAFOX_2.put("south",
                                                (row1.south != null ? row1.south.toString() : null));
                                        valueMap_tAFOX_2.put("north",
                                                (row1.north != null ? row1.north.toString() : null));
                                        valueMap_tAFOX_2.put("mdMaintenanceFrequencyCode",
                                                (row1.mdMaintenanceFrequencyCode != null
                                                        ? row1.mdMaintenanceFrequencyCode.toString()
                                                        : "asNeeded"));
                                        valueMap_tAFOX_2.put("keyword",
                                                (row1.keyword != null ? row1.keyword.toString() : null));
                                        valueMap_tAFOX_2.put("keyword2",
                                                (row1.keyword2 != null ? row1.keyword2.toString() : null));
                                        valueMap_tAFOX_2.put("keyword1_theme",
                                                (row1.keyword1_theme != null ? row1.keyword1_theme.toString()
                                                        : "theme"));
                                        valueMap_tAFOX_2.put("keyword2_theme",
                                                (row1.keyword2_theme != null ? row1.keyword2_theme.toString()
                                                        : "place"));
                                        valueMap_tAFOX_2.put("useConstraints",
                                                (row1.useConstraints != null ? row1.useConstraints.toString()
                                                        : null));
                                        valueMap_tAFOX_2.put("scopeCode",
                                                (row1.scopeCode != null ? row1.scopeCode.toString() : "dataset"));
                                        valueMap_tAFOX_2.put("lineage",
                                                (row1.lineage != null ? row1.lineage.toString() : null));
                                        valueMap_tAFOX_2.put("srs",
                                                (row1.srs != null ? row1.srs.toString() : "WGS 1984"));
                                        valueMap_tAFOX_2.put("columnsDef",
                                                (row1.columnsDef != null ? row1.columnsDef.toString() : null));
                                        valueMap_tAFOX_2.put("layerName",
                                                (row1.layerName != null ? row1.layerName.toString() : null));
                                        valueMap_tAFOX_2.put("bands",
                                                (row1.bands != null ? row1.bands.toString() : null));
                                        valueMap_tAFOX_2.put("bandName",
                                                (row1.bandName != null ? row1.bandName.toString() : null));
                                        valueMap_tAFOX_2.put("bandColorInterpret",
                                                (row1.bandColorInterpret != null
                                                        ? row1.bandColorInterpret.toString()
                                                        : null));
                                        org.dom4j.Element subTreeRootParent_tAFOX_2 = null;

                                        // build root xml tree
                                        if (needRoot_tAFOX_2) {
                                            needRoot_tAFOX_2 = false;
                                            if (orders_tAFOX_2.length > 0) {
                                                orders_tAFOX_2[0] = 0;
                                            }
                                            org.dom4j.Element root_tAFOX_2 = doc_tAFOX_2
                                                    .addElement("mdb:MD_Metadata");
                                            root_tAFOX_2.addNamespace("xsi", TalendString.replaceSpecialCharForXML(
                                                    "http://www.w3.org/2001/XMLSchema-instance"));
                                            root_tAFOX_2.addNamespace("cit", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/cit/1.0"));
                                            root_tAFOX_2.addNamespace("dqm", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19157/-2/dqm/1.0"));
                                            root_tAFOX_2.addNamespace("gco", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/gco/1.0"));
                                            root_tAFOX_2.addNamespace("gcx", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/gcx/1.0"));
                                            root_tAFOX_2.addNamespace("gex", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/gex/1.0"));
                                            root_tAFOX_2.addNamespace("gml", TalendString
                                                    .replaceSpecialCharForXML("http://www.opengis.net/gml/3.2"));
                                            root_tAFOX_2.addNamespace("lan", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/lan/1.0"));
                                            root_tAFOX_2.addNamespace("mcc", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mcc/1.0"));
                                            root_tAFOX_2.addNamespace("mco", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mco/1.0"));
                                            root_tAFOX_2.addNamespace("mdb", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mdb/1.0"));
                                            root_tAFOX_2.addNamespace("mmi", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mmi/1.0"));
                                            root_tAFOX_2.addNamespace("mrd", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mrd/1.0"));
                                            root_tAFOX_2.addNamespace("mri", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mri/1.0"));
                                            root_tAFOX_2.addNamespace("mrl", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mrl/1.0"));
                                            root_tAFOX_2.addNamespace("mrs", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mrs/1.0"));
                                            root_tAFOX_2.addNamespace("msr", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/msr/1.0"));
                                            root_tAFOX_2.addNamespace("mrc", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/mrc/1.0"));
                                            root_tAFOX_2.addNamespace("srv", TalendString.replaceSpecialCharForXML(
                                                    "http://standards.iso.org/19115/-3/srv/2.0"));
                                            root_tAFOX_2.setName("mdb:MD_Metadata");
                                            org.dom4j.Element root_0_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_0_tAFOX_2 = root_tAFOX_2.addElement("metadataIdentifier");
                                            } else {
                                                root_0_tAFOX_2 = root_tAFOX_2.addElement("mdb:metadataIdentifier");
                                            }
                                            root_0_tAFOX_2.setName("mdb:metadataIdentifier");
                                            org.dom4j.Element root_0_0_tAFOX_2;
                                            if (root_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_0_0_tAFOX_2 = root_0_tAFOX_2.addElement("MD_Identifier");
                                            } else {
                                                root_0_0_tAFOX_2 = root_0_tAFOX_2.addElement("mcc:MD_Identifier");
                                            }
                                            root_0_0_tAFOX_2.setName("mcc:MD_Identifier");
                                            org.dom4j.Element root_0_0_0_tAFOX_2;
                                            if (root_0_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_0_0_0_tAFOX_2 = root_0_0_tAFOX_2.addElement("code");
                                            } else {
                                                root_0_0_0_tAFOX_2 = root_0_0_tAFOX_2.addElement("mcc:code");
                                            }
                                            root_0_0_0_tAFOX_2.setName("mcc:code");
                                            org.dom4j.Element root_0_0_0_0_tAFOX_2;
                                            if (root_0_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_0_0_0_0_tAFOX_2 = root_0_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_0_0_0_0_tAFOX_2 = root_0_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdIdentifier") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_0_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdIdentifier"));
                                            }
                                            root_0_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_0_0_1_tAFOX_2;
                                            if (root_0_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_0_0_1_tAFOX_2 = root_0_0_tAFOX_2.addElement("codeSpace");
                                            } else {
                                                root_0_0_1_tAFOX_2 = root_0_0_tAFOX_2.addElement("mcc:codeSpace");
                                            }
                                            root_0_0_1_tAFOX_2.setName("mcc:codeSpace");
                                            org.dom4j.Element root_0_0_1_0_tAFOX_2;
                                            if (root_0_0_1_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_0_0_1_0_tAFOX_2 = root_0_0_1_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_0_0_1_0_tAFOX_2 = root_0_0_1_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            nestXMLTool_tAFOX_2.parseAndAdd(root_0_0_1_0_tAFOX_2, "urn:uuid");

                                            root_0_0_1_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_1_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_1_tAFOX_2 = root_tAFOX_2.addElement("defaultLocale");
                                            } else {
                                                root_1_tAFOX_2 = root_tAFOX_2.addElement("mdb:defaultLocale");
                                            }
                                            root_1_tAFOX_2.setName("mdb:defaultLocale");
                                            org.dom4j.Element root_1_0_tAFOX_2;
                                            if (root_1_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_1_0_tAFOX_2 = root_1_tAFOX_2.addElement("PT_Locale");
                                            } else {
                                                root_1_0_tAFOX_2 = root_1_tAFOX_2.addElement("lan:PT_Locale");
                                            }
                                            root_1_0_tAFOX_2.setName("lan:PT_Locale");
                                            org.dom4j.Element root_1_0_0_tAFOX_2;
                                            if (root_1_0_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_1_0_0_tAFOX_2 = root_1_0_tAFOX_2.addElement("language");
                                            } else {
                                                root_1_0_0_tAFOX_2 = root_1_0_tAFOX_2.addElement("lan:language");
                                            }
                                            root_1_0_0_tAFOX_2.setName("lan:language");
                                            org.dom4j.Element root_1_0_0_0_tAFOX_2;
                                            if (root_1_0_0_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_1_0_0_0_tAFOX_2 = root_1_0_0_tAFOX_2
                                                        .addElement("LanguageCode");
                                            } else {
                                                root_1_0_0_0_tAFOX_2 = root_1_0_0_tAFOX_2
                                                        .addElement("lan:LanguageCode");
                                            }
                                            root_1_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://www.loc.gov/standards/iso639-2/");
                                            if (valueMap_tAFOX_2.get("mdLanguage") != null) {
                                                root_1_0_0_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("mdLanguage"));
                                            }
                                            root_1_0_0_0_tAFOX_2.setName("lan:LanguageCode");
                                            org.dom4j.Element root_1_0_1_tAFOX_2;
                                            if (root_1_0_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_1_0_1_tAFOX_2 = root_1_0_tAFOX_2
                                                        .addElement("characterEncoding");
                                            } else {
                                                root_1_0_1_tAFOX_2 = root_1_0_tAFOX_2
                                                        .addElement("lan:characterEncoding");
                                            }
                                            root_1_0_1_tAFOX_2.setName("lan:characterEncoding");
                                            org.dom4j.Element root_1_0_1_0_tAFOX_2;
                                            if (root_1_0_1_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_1_0_1_0_tAFOX_2 = root_1_0_1_tAFOX_2
                                                        .addElement("MD_CharacterSetCode");
                                            } else {
                                                root_1_0_1_0_tAFOX_2 = root_1_0_1_tAFOX_2
                                                        .addElement("lan:MD_CharacterSetCode");
                                            }
                                            root_1_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_CharacterSetCode");
                                            if (valueMap_tAFOX_2.get("mdCharacterSetCode") != null) {
                                                root_1_0_1_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("mdCharacterSetCode"));
                                            }
                                            root_1_0_1_0_tAFOX_2.setName("lan:MD_CharacterSetCode");
                                            org.dom4j.Element root_2_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_2_tAFOX_2 = root_tAFOX_2.addElement("contact");
                                            } else {
                                                root_2_tAFOX_2 = root_tAFOX_2.addElement("mdb:contact");
                                            }
                                            root_2_tAFOX_2.setName("mdb:contact");
                                            org.dom4j.Element root_2_0_tAFOX_2;
                                            if (root_2_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_tAFOX_2 = root_2_tAFOX_2.addElement("CI_Responsibility");
                                            } else {
                                                root_2_0_tAFOX_2 = root_2_tAFOX_2
                                                        .addElement("cit:CI_Responsibility");
                                            }
                                            root_2_0_tAFOX_2.setName("cit:CI_Responsibility");
                                            org.dom4j.Element root_2_0_0_tAFOX_2;
                                            if (root_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_0_tAFOX_2 = root_2_0_tAFOX_2.addElement("role");
                                            } else {
                                                root_2_0_0_tAFOX_2 = root_2_0_tAFOX_2.addElement("cit:role");
                                            }
                                            root_2_0_0_tAFOX_2.setName("cit:role");
                                            org.dom4j.Element root_2_0_0_0_tAFOX_2;
                                            if (root_2_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_0_0_tAFOX_2 = root_2_0_0_tAFOX_2.addElement("CI_RoleCode");
                                            } else {
                                                root_2_0_0_0_tAFOX_2 = root_2_0_0_tAFOX_2
                                                        .addElement("cit:CI_RoleCode");
                                            }
                                            root_2_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#CI_RoleCode");
                                            if (valueMap_tAFOX_2.get("ciRoleCode") != null) {
                                                root_2_0_0_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("ciRoleCode"));
                                            }
                                            root_2_0_0_0_tAFOX_2.setName("cit:CI_RoleCode");
                                            org.dom4j.Element root_2_0_1_tAFOX_2;
                                            if (root_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_tAFOX_2 = root_2_0_tAFOX_2.addElement("party");
                                            } else {
                                                root_2_0_1_tAFOX_2 = root_2_0_tAFOX_2.addElement("cit:party");
                                            }
                                            root_2_0_1_tAFOX_2.setName("cit:party");
                                            org.dom4j.Element root_2_0_1_0_tAFOX_2;
                                            if (root_2_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_tAFOX_2 = root_2_0_1_tAFOX_2
                                                        .addElement("CI_Organisation");
                                            } else {
                                                root_2_0_1_0_tAFOX_2 = root_2_0_1_tAFOX_2
                                                        .addElement("cit:CI_Organisation");
                                            }
                                            root_2_0_1_0_tAFOX_2.setName("cit:CI_Organisation");
                                            org.dom4j.Element root_2_0_1_0_0_tAFOX_2;
                                            if (root_2_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_0_tAFOX_2 = root_2_0_1_0_tAFOX_2.addElement("name");
                                            } else {
                                                root_2_0_1_0_0_tAFOX_2 = root_2_0_1_0_tAFOX_2
                                                        .addElement("cit:name");
                                            }
                                            root_2_0_1_0_0_tAFOX_2.setName("cit:name");
                                            org.dom4j.Element root_2_0_1_0_0_0_tAFOX_2;
                                            if (root_2_0_1_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_0_0_tAFOX_2 = root_2_0_1_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_0_0_tAFOX_2 = root_2_0_1_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdOrganisation") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdOrganisation"));
                                            }
                                            root_2_0_1_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_1_tAFOX_2;
                                            if (root_2_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_tAFOX_2 = root_2_0_1_0_tAFOX_2
                                                        .addElement("contactInfo");
                                            } else {
                                                root_2_0_1_0_1_tAFOX_2 = root_2_0_1_0_tAFOX_2
                                                        .addElement("cit:contactInfo");
                                            }
                                            root_2_0_1_0_1_tAFOX_2.setName("cit:contactInfo");
                                            org.dom4j.Element root_2_0_1_0_1_0_tAFOX_2;
                                            if (root_2_0_1_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_tAFOX_2 = root_2_0_1_0_1_tAFOX_2
                                                        .addElement("CI_Contact");
                                            } else {
                                                root_2_0_1_0_1_0_tAFOX_2 = root_2_0_1_0_1_tAFOX_2
                                                        .addElement("cit:CI_Contact");
                                            }
                                            root_2_0_1_0_1_0_tAFOX_2.setName("cit:CI_Contact");
                                            org.dom4j.Element root_2_0_1_0_1_0_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_0_tAFOX_2 = root_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("phone");
                                            } else {
                                                root_2_0_1_0_1_0_0_tAFOX_2 = root_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:phone");
                                            }
                                            root_2_0_1_0_1_0_0_tAFOX_2.setName("cit:phone");
                                            org.dom4j.Element root_2_0_1_0_1_0_0_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("CI_Telephone");
                                            } else {
                                                root_2_0_1_0_1_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("cit:CI_Telephone");
                                            }
                                            root_2_0_1_0_1_0_0_0_tAFOX_2.setName("cit:CI_Telephone");
                                            org.dom4j.Element root_2_0_1_0_1_0_0_0_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("number");
                                            } else {
                                                root_2_0_1_0_1_0_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:number");
                                            }
                                            root_2_0_1_0_1_0_0_0_0_tAFOX_2.setName("cit:number");
                                            org.dom4j.Element root_2_0_1_0_1_0_0_0_0_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_1_0_0_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_0_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_1_0_0_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_0_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdVoice") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_1_0_0_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdVoice"));
                                            }
                                            root_2_0_1_0_1_0_0_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_1_0_0_0_1_tAFOX_2;
                                            if (root_2_0_1_0_1_0_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_0_0_1_tAFOX_2 = root_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("numberType");
                                            } else {
                                                root_2_0_1_0_1_0_0_0_1_tAFOX_2 = root_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:numberType");
                                            }
                                            root_2_0_1_0_1_0_0_0_1_tAFOX_2.setName("cit:numberType");
                                            org.dom4j.Element root_2_0_1_0_1_0_0_0_1_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_0_0_1_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_0_0_1_0_tAFOX_2 = root_2_0_1_0_1_0_0_0_1_tAFOX_2
                                                        .addElement("CI_TelephoneTypeCode");
                                            } else {
                                                root_2_0_1_0_1_0_0_0_1_0_tAFOX_2 = root_2_0_1_0_1_0_0_0_1_tAFOX_2
                                                        .addElement("cit:CI_TelephoneTypeCode");
                                            }
                                            root_2_0_1_0_1_0_0_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/ML_gmxCodelists.xml#CI_TelephoneTypeCode");
                                            root_2_0_1_0_1_0_0_0_1_0_tAFOX_2.addAttribute("codeListValue", "voice");
                                            root_2_0_1_0_1_0_0_0_1_0_tAFOX_2.setName("cit:CI_TelephoneTypeCode");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_tAFOX_2;
                                            if (root_2_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_tAFOX_2 = root_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("address");
                                            } else {
                                                root_2_0_1_0_1_0_1_tAFOX_2 = root_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:address");
                                            }
                                            root_2_0_1_0_1_0_1_tAFOX_2.setName("cit:address");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_0_tAFOX_2 = root_2_0_1_0_1_0_1_tAFOX_2
                                                        .addElement("CI_Address");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_tAFOX_2 = root_2_0_1_0_1_0_1_tAFOX_2
                                                        .addElement("cit:CI_Address");
                                            }
                                            root_2_0_1_0_1_0_1_0_tAFOX_2.setName("cit:CI_Address");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_0_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("deliveryPoint");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:deliveryPoint");
                                            }
                                            root_2_0_1_0_1_0_1_0_0_tAFOX_2.setName("cit:deliveryPoint");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_0_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_1_0_1_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_0_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdDeliveryPoint") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_1_0_1_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdDeliveryPoint"));
                                            }
                                            root_2_0_1_0_1_0_1_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_1_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_0_1_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("city");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_1_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:city");
                                            }
                                            root_2_0_1_0_1_0_1_0_1_tAFOX_2.setName("cit:city");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_1_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_1_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_1_0_1_0_1_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_1_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_1_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_1_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdCity") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_1_0_1_0_1_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdCity"));
                                            }
                                            root_2_0_1_0_1_0_1_0_1_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_2_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_0_2_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("administrativeArea");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_2_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:administrativeArea");
                                            }
                                            root_2_0_1_0_1_0_1_0_2_tAFOX_2.setName("cit:administrativeArea");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_2_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_2_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_1_0_1_0_2_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_2_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_2_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_2_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdAdministrativeArea") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_1_0_1_0_2_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdAdministrativeArea"));
                                            }
                                            root_2_0_1_0_1_0_1_0_2_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_3_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_0_3_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("postalCode");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_3_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:postalCode");
                                            }
                                            root_2_0_1_0_1_0_1_0_3_tAFOX_2.setName("cit:postalCode");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_3_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_3_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_1_0_1_0_3_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_3_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_3_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_3_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdPostalCode") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_1_0_1_0_3_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdPostalCode"));
                                            }
                                            root_2_0_1_0_1_0_1_0_3_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_4_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_0_4_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("country");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_4_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:country");
                                            }
                                            root_2_0_1_0_1_0_1_0_4_tAFOX_2.setName("cit:country");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_4_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_4_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_1_0_1_0_4_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_4_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_4_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_4_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdCountry") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_1_0_1_0_4_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdCountry"));
                                            }
                                            root_2_0_1_0_1_0_1_0_4_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_5_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_1_0_1_0_5_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("electronicMailAddress");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_5_tAFOX_2 = root_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:electronicMailAddress");
                                            }
                                            root_2_0_1_0_1_0_1_0_5_tAFOX_2.setName("cit:electronicMailAddress");
                                            org.dom4j.Element root_2_0_1_0_1_0_1_0_5_0_tAFOX_2;
                                            if (root_2_0_1_0_1_0_1_0_5_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_1_0_1_0_5_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_5_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_1_0_1_0_5_0_tAFOX_2 = root_2_0_1_0_1_0_1_0_5_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdEmail") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_1_0_1_0_5_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdEmail"));
                                            }
                                            root_2_0_1_0_1_0_1_0_5_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_2_tAFOX_2;
                                            if (root_2_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_2_tAFOX_2 = root_2_0_1_0_tAFOX_2
                                                        .addElement("individual");
                                            } else {
                                                root_2_0_1_0_2_tAFOX_2 = root_2_0_1_0_tAFOX_2
                                                        .addElement("cit:individual");
                                            }
                                            root_2_0_1_0_2_tAFOX_2.setName("cit:individual");
                                            org.dom4j.Element root_2_0_1_0_2_0_tAFOX_2;
                                            if (root_2_0_1_0_2_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_2_0_tAFOX_2 = root_2_0_1_0_2_tAFOX_2
                                                        .addElement("CI_Individual");
                                            } else {
                                                root_2_0_1_0_2_0_tAFOX_2 = root_2_0_1_0_2_tAFOX_2
                                                        .addElement("cit:CI_Individual");
                                            }
                                            root_2_0_1_0_2_0_tAFOX_2.setName("cit:CI_Individual");
                                            org.dom4j.Element root_2_0_1_0_2_0_0_tAFOX_2;
                                            if (root_2_0_1_0_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_2_0_0_tAFOX_2 = root_2_0_1_0_2_0_tAFOX_2
                                                        .addElement("name");
                                            } else {
                                                root_2_0_1_0_2_0_0_tAFOX_2 = root_2_0_1_0_2_0_tAFOX_2
                                                        .addElement("cit:name");
                                            }
                                            root_2_0_1_0_2_0_0_tAFOX_2.setName("cit:name");
                                            org.dom4j.Element root_2_0_1_0_2_0_0_0_tAFOX_2;
                                            if (root_2_0_1_0_2_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_2_0_0_0_tAFOX_2 = root_2_0_1_0_2_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_2_0_0_0_tAFOX_2 = root_2_0_1_0_2_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdIndividualName") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_2_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdIndividualName"));
                                            }
                                            root_2_0_1_0_2_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_2_0_1_0_2_0_1_tAFOX_2;
                                            if (root_2_0_1_0_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_2_0_1_0_2_0_1_tAFOX_2 = root_2_0_1_0_2_0_tAFOX_2
                                                        .addElement("positionName");
                                            } else {
                                                root_2_0_1_0_2_0_1_tAFOX_2 = root_2_0_1_0_2_0_tAFOX_2
                                                        .addElement("cit:positionName");
                                            }
                                            root_2_0_1_0_2_0_1_tAFOX_2.setName("cit:positionName");
                                            org.dom4j.Element root_2_0_1_0_2_0_1_0_tAFOX_2;
                                            if (root_2_0_1_0_2_0_1_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_2_0_1_0_2_0_1_0_tAFOX_2 = root_2_0_1_0_2_0_1_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_2_0_1_0_2_0_1_0_tAFOX_2 = root_2_0_1_0_2_0_1_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("mdPositionName") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_2_0_1_0_2_0_1_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdPositionName"));
                                            }
                                            root_2_0_1_0_2_0_1_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_3_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_3_tAFOX_2 = root_tAFOX_2.addElement("dateInfo");
                                            } else {
                                                root_3_tAFOX_2 = root_tAFOX_2.addElement("mdb:dateInfo");
                                            }
                                            root_3_tAFOX_2.setName("mdb:dateInfo");
                                            org.dom4j.Element root_3_0_tAFOX_2;
                                            if (root_3_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_3_0_tAFOX_2 = root_3_tAFOX_2.addElement("CI_Date");
                                            } else {
                                                root_3_0_tAFOX_2 = root_3_tAFOX_2.addElement("cit:CI_Date");
                                            }
                                            root_3_0_tAFOX_2.setName("cit:CI_Date");
                                            org.dom4j.Element root_3_0_0_tAFOX_2;
                                            if (root_3_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_3_0_0_tAFOX_2 = root_3_0_tAFOX_2.addElement("date");
                                            } else {
                                                root_3_0_0_tAFOX_2 = root_3_0_tAFOX_2.addElement("cit:date");
                                            }
                                            root_3_0_0_tAFOX_2.setName("cit:date");
                                            org.dom4j.Element root_3_0_0_0_tAFOX_2;
                                            if (root_3_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_3_0_0_0_tAFOX_2 = root_3_0_0_tAFOX_2.addElement("DateTime");
                                            } else {
                                                root_3_0_0_0_tAFOX_2 = root_3_0_0_tAFOX_2
                                                        .addElement("gco:DateTime");
                                            }
                                            if (valueMap_tAFOX_2.get("mdDate") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_3_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdDate"));
                                            }
                                            root_3_0_0_0_tAFOX_2.setName("gco:DateTime");
                                            org.dom4j.Element root_3_0_1_tAFOX_2;
                                            if (root_3_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_3_0_1_tAFOX_2 = root_3_0_tAFOX_2.addElement("dateType");
                                            } else {
                                                root_3_0_1_tAFOX_2 = root_3_0_tAFOX_2.addElement("cit:dateType");
                                            }
                                            root_3_0_1_tAFOX_2.setName("cit:dateType");
                                            org.dom4j.Element root_3_0_1_0_tAFOX_2;
                                            if (root_3_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_3_0_1_0_tAFOX_2 = root_3_0_1_tAFOX_2
                                                        .addElement("CI_DateTypeCode");
                                            } else {
                                                root_3_0_1_0_tAFOX_2 = root_3_0_1_tAFOX_2
                                                        .addElement("cit:CI_DateTypeCode");
                                            }
                                            root_3_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#CI_DateTypeCode");
                                            root_3_0_1_0_tAFOX_2.addAttribute("codeListValue", "creation");
                                            root_3_0_1_0_tAFOX_2.setName("cit:CI_DateTypeCode");
                                            org.dom4j.Element root_4_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_4_tAFOX_2 = root_tAFOX_2.addElement("metadataStandard");
                                            } else {
                                                root_4_tAFOX_2 = root_tAFOX_2.addElement("mdb:metadataStandard");
                                            }
                                            root_4_tAFOX_2.setName("mdb:metadataStandard");
                                            org.dom4j.Element root_4_0_tAFOX_2;
                                            if (root_4_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_4_0_tAFOX_2 = root_4_tAFOX_2.addElement("CI_Citation");
                                            } else {
                                                root_4_0_tAFOX_2 = root_4_tAFOX_2.addElement("cit:CI_Citation");
                                            }
                                            root_4_0_tAFOX_2.setName("cit:CI_Citation");
                                            org.dom4j.Element root_4_0_0_tAFOX_2;
                                            if (root_4_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_4_0_0_tAFOX_2 = root_4_0_tAFOX_2.addElement("title");
                                            } else {
                                                root_4_0_0_tAFOX_2 = root_4_0_tAFOX_2.addElement("cit:title");
                                            }
                                            root_4_0_0_tAFOX_2.setName("cit:title");
                                            org.dom4j.Element root_4_0_0_0_tAFOX_2;
                                            if (root_4_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_4_0_0_0_tAFOX_2 = root_4_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_4_0_0_0_tAFOX_2 = root_4_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            nestXMLTool_tAFOX_2.parseAndAdd(root_4_0_0_0_tAFOX_2, "ISO 19115-3");

                                            root_4_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_5_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_5_tAFOX_2 = root_tAFOX_2.addElement("referenceSystemInfo");
                                            } else {
                                                root_5_tAFOX_2 = root_tAFOX_2.addElement("mdb:referenceSystemInfo");
                                            }
                                            root_5_tAFOX_2.setName("mdb:referenceSystemInfo");
                                            org.dom4j.Element root_5_0_tAFOX_2;
                                            if (root_5_tAFOX_2.getNamespaceForPrefix("mrs") == null) {
                                                root_5_0_tAFOX_2 = root_5_tAFOX_2.addElement("MD_ReferenceSystem");
                                            } else {
                                                root_5_0_tAFOX_2 = root_5_tAFOX_2
                                                        .addElement("mrs:MD_ReferenceSystem");
                                            }
                                            root_5_0_tAFOX_2.setName("mrs:MD_ReferenceSystem");
                                            org.dom4j.Element root_5_0_0_tAFOX_2;
                                            if (root_5_0_tAFOX_2.getNamespaceForPrefix("mrs") == null) {
                                                root_5_0_0_tAFOX_2 = root_5_0_tAFOX_2
                                                        .addElement("referenceSystemIdentifier");
                                            } else {
                                                root_5_0_0_tAFOX_2 = root_5_0_tAFOX_2
                                                        .addElement("mrs:referenceSystemIdentifier");
                                            }
                                            root_5_0_0_tAFOX_2.setName("mrs:referenceSystemIdentifier");
                                            org.dom4j.Element root_5_0_0_0_tAFOX_2;
                                            if (root_5_0_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_5_0_0_0_tAFOX_2 = root_5_0_0_tAFOX_2
                                                        .addElement("MD_Identifier");
                                            } else {
                                                root_5_0_0_0_tAFOX_2 = root_5_0_0_tAFOX_2
                                                        .addElement("mcc:MD_Identifier");
                                            }
                                            root_5_0_0_0_tAFOX_2.setName("mcc:MD_Identifier");
                                            org.dom4j.Element root_5_0_0_0_0_tAFOX_2;
                                            if (root_5_0_0_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_5_0_0_0_0_tAFOX_2 = root_5_0_0_0_tAFOX_2.addElement("code");
                                            } else {
                                                root_5_0_0_0_0_tAFOX_2 = root_5_0_0_0_tAFOX_2
                                                        .addElement("mcc:code");
                                            }
                                            root_5_0_0_0_0_tAFOX_2.setName("mcc:code");
                                            org.dom4j.Element root_5_0_0_0_0_0_tAFOX_2;
                                            if (root_5_0_0_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_5_0_0_0_0_0_tAFOX_2 = root_5_0_0_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_5_0_0_0_0_0_tAFOX_2 = root_5_0_0_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("srs") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_5_0_0_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("srs"));
                                            }
                                            root_5_0_0_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_6_tAFOX_2 = root_tAFOX_2.addElement("identificationInfo");
                                            } else {
                                                root_6_tAFOX_2 = root_tAFOX_2.addElement("mdb:identificationInfo");
                                            }
                                            root_6_tAFOX_2.setName("mdb:identificationInfo");
                                            org.dom4j.Element root_6_0_tAFOX_2;
                                            if (root_6_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_tAFOX_2 = root_6_tAFOX_2
                                                        .addElement("MD_DataIdentification");
                                            } else {
                                                root_6_0_tAFOX_2 = root_6_tAFOX_2
                                                        .addElement("mri:MD_DataIdentification");
                                            }
                                            root_6_0_tAFOX_2.setName("mri:MD_DataIdentification");
                                            org.dom4j.Element root_6_0_0_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_0_tAFOX_2 = root_6_0_tAFOX_2.addElement("citation");
                                            } else {
                                                root_6_0_0_tAFOX_2 = root_6_0_tAFOX_2.addElement("mri:citation");
                                            }
                                            root_6_0_0_tAFOX_2.setName("mri:citation");
                                            org.dom4j.Element root_6_0_0_0_tAFOX_2;
                                            if (root_6_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_tAFOX_2 = root_6_0_0_tAFOX_2.addElement("CI_Citation");
                                            } else {
                                                root_6_0_0_0_tAFOX_2 = root_6_0_0_tAFOX_2
                                                        .addElement("cit:CI_Citation");
                                            }
                                            root_6_0_0_0_tAFOX_2.setName("cit:CI_Citation");
                                            org.dom4j.Element root_6_0_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_0_tAFOX_2 = root_6_0_0_0_tAFOX_2.addElement("title");
                                            } else {
                                                root_6_0_0_0_0_tAFOX_2 = root_6_0_0_0_tAFOX_2
                                                        .addElement("cit:title");
                                            }
                                            root_6_0_0_0_0_tAFOX_2.setName("cit:title");
                                            org.dom4j.Element root_6_0_0_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_0_0_0_0_tAFOX_2 = root_6_0_0_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_0_0_0_0_tAFOX_2 = root_6_0_0_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("title") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_0_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("title"));
                                            }
                                            root_6_0_0_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_0_0_1_tAFOX_2;
                                            if (root_6_0_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_1_tAFOX_2 = root_6_0_0_0_tAFOX_2.addElement("date");
                                            } else {
                                                root_6_0_0_0_1_tAFOX_2 = root_6_0_0_0_tAFOX_2
                                                        .addElement("cit:date");
                                            }
                                            root_6_0_0_0_1_tAFOX_2.setName("cit:date");
                                            org.dom4j.Element root_6_0_0_0_1_0_tAFOX_2;
                                            if (root_6_0_0_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_1_0_tAFOX_2 = root_6_0_0_0_1_tAFOX_2
                                                        .addElement("CI_Date");
                                            } else {
                                                root_6_0_0_0_1_0_tAFOX_2 = root_6_0_0_0_1_tAFOX_2
                                                        .addElement("cit:CI_Date");
                                            }
                                            root_6_0_0_0_1_0_tAFOX_2.setName("cit:CI_Date");
                                            org.dom4j.Element root_6_0_0_0_1_0_0_tAFOX_2;
                                            if (root_6_0_0_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_1_0_0_tAFOX_2 = root_6_0_0_0_1_0_tAFOX_2
                                                        .addElement("date");
                                            } else {
                                                root_6_0_0_0_1_0_0_tAFOX_2 = root_6_0_0_0_1_0_tAFOX_2
                                                        .addElement("cit:date");
                                            }
                                            root_6_0_0_0_1_0_0_tAFOX_2.setName("cit:date");
                                            org.dom4j.Element root_6_0_0_0_1_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_1_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_0_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_1_0_0_tAFOX_2
                                                        .addElement("DateTime");
                                            } else {
                                                root_6_0_0_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_1_0_0_tAFOX_2
                                                        .addElement("gco:DateTime");
                                            }
                                            if (valueMap_tAFOX_2.get("mdDate") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_0_0_1_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("mdDate"));
                                            }
                                            root_6_0_0_0_1_0_0_0_tAFOX_2.setName("gco:DateTime");
                                            org.dom4j.Element root_6_0_0_0_1_0_1_tAFOX_2;
                                            if (root_6_0_0_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_1_0_1_tAFOX_2 = root_6_0_0_0_1_0_tAFOX_2
                                                        .addElement("dateType");
                                            } else {
                                                root_6_0_0_0_1_0_1_tAFOX_2 = root_6_0_0_0_1_0_tAFOX_2
                                                        .addElement("cit:dateType");
                                            }
                                            root_6_0_0_0_1_0_1_tAFOX_2.setName("cit:dateType");
                                            org.dom4j.Element root_6_0_0_0_1_0_1_0_tAFOX_2;
                                            if (root_6_0_0_0_1_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_1_0_1_0_tAFOX_2 = root_6_0_0_0_1_0_1_tAFOX_2
                                                        .addElement("CI_DateTypeCode");
                                            } else {
                                                root_6_0_0_0_1_0_1_0_tAFOX_2 = root_6_0_0_0_1_0_1_tAFOX_2
                                                        .addElement("cit:CI_DateTypeCode");
                                            }
                                            root_6_0_0_0_1_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#CI_DateTypeCode");
                                            root_6_0_0_0_1_0_1_0_tAFOX_2.addAttribute("codeListValue",
                                                    "publication");
                                            root_6_0_0_0_1_0_1_0_tAFOX_2.setName("cit:CI_DateTypeCode");
                                            org.dom4j.Element root_6_0_0_0_2_tAFOX_2;
                                            if (root_6_0_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_tAFOX_2 = root_6_0_0_0_tAFOX_2
                                                        .addElement("citedResponsibleParty");
                                            } else {
                                                root_6_0_0_0_2_tAFOX_2 = root_6_0_0_0_tAFOX_2
                                                        .addElement("cit:citedResponsibleParty");
                                            }
                                            root_6_0_0_0_2_tAFOX_2.setName("cit:citedResponsibleParty");
                                            org.dom4j.Element root_6_0_0_0_2_0_tAFOX_2;
                                            if (root_6_0_0_0_2_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_tAFOX_2 = root_6_0_0_0_2_tAFOX_2
                                                        .addElement("CI_Responsibility");
                                            } else {
                                                root_6_0_0_0_2_0_tAFOX_2 = root_6_0_0_0_2_tAFOX_2
                                                        .addElement("cit:CI_Responsibility");
                                            }
                                            root_6_0_0_0_2_0_tAFOX_2.setName("cit:CI_Responsibility");
                                            org.dom4j.Element root_6_0_0_0_2_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_0_tAFOX_2 = root_6_0_0_0_2_0_tAFOX_2
                                                        .addElement("role");
                                            } else {
                                                root_6_0_0_0_2_0_0_tAFOX_2 = root_6_0_0_0_2_0_tAFOX_2
                                                        .addElement("cit:role");
                                            }
                                            root_6_0_0_0_2_0_0_tAFOX_2.setName("cit:role");
                                            org.dom4j.Element root_6_0_0_0_2_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_0_tAFOX_2
                                                        .addElement("CI_RoleCode");
                                            } else {
                                                root_6_0_0_0_2_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_0_tAFOX_2
                                                        .addElement("cit:CI_RoleCode");
                                            }
                                            root_6_0_0_0_2_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#CI_RoleCode");
                                            root_6_0_0_0_2_0_0_0_tAFOX_2.addAttribute("codeListValue",
                                                    "originator");
                                            root_6_0_0_0_2_0_0_0_tAFOX_2.setName("cit:CI_RoleCode");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_tAFOX_2;
                                            if (root_6_0_0_0_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_tAFOX_2 = root_6_0_0_0_2_0_tAFOX_2
                                                        .addElement("party");
                                            } else {
                                                root_6_0_0_0_2_0_1_tAFOX_2 = root_6_0_0_0_2_0_tAFOX_2
                                                        .addElement("cit:party");
                                            }
                                            root_6_0_0_0_2_0_1_tAFOX_2.setName("cit:party");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_tAFOX_2
                                                        .addElement("CI_Organisation");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_tAFOX_2
                                                        .addElement("cit:CI_Organisation");
                                            }
                                            root_6_0_0_0_2_0_1_0_tAFOX_2.setName("cit:CI_Organisation");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_tAFOX_2
                                                        .addElement("name");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_tAFOX_2
                                                        .addElement("cit:name");
                                            }
                                            root_6_0_0_0_2_0_1_0_0_tAFOX_2.setName("cit:name");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_0_0_2_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("organisationName") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_0_0_2_0_1_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("organisationName"));
                                            }
                                            root_6_0_0_0_2_0_1_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_tAFOX_2 = root_6_0_0_0_2_0_1_0_tAFOX_2
                                                        .addElement("contactInfo");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_tAFOX_2 = root_6_0_0_0_2_0_1_0_tAFOX_2
                                                        .addElement("cit:contactInfo");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_tAFOX_2.setName("cit:contactInfo");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_tAFOX_2
                                                        .addElement("CI_Contact");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_tAFOX_2
                                                        .addElement("cit:CI_Contact");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_tAFOX_2.setName("cit:CI_Contact");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("phone");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:phone");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_0_tAFOX_2.setName("cit:phone");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("CI_Telephone");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("cit:CI_Telephone");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2.setName("cit:CI_Telephone");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("number");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:number");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_0_0_0_tAFOX_2.setName("cit:number");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_0_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("voice") != null) {
                                                nestXMLTool_tAFOX_2.setText(
                                                        root_6_0_0_0_2_0_1_0_1_0_0_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("voice"));
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_0_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_0_0_1_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_1_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("numberType");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_1_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:numberType");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_0_0_1_tAFOX_2.setName("cit:numberType");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_0_0_1_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_0_0_1_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_1_tAFOX_2
                                                        .addElement("CI_TelephoneTypeCode");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_0_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_0_0_1_tAFOX_2
                                                        .addElement("cit:CI_TelephoneTypeCode");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_0_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/ML_gmxCodelists.xml#CI_TelephoneTypeCode");
                                            root_6_0_0_0_2_0_1_0_1_0_0_0_1_0_tAFOX_2.addAttribute("codeListValue",
                                                    "voice");
                                            root_6_0_0_0_2_0_1_0_1_0_0_0_1_0_tAFOX_2
                                                    .setName("cit:CI_TelephoneTypeCode");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_1_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_1_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("address");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_1_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:address");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_1_tAFOX_2.setName("cit:address");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_1_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_1_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_1_tAFOX_2
                                                        .addElement("CI_Address");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_1_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_1_tAFOX_2
                                                        .addElement("cit:CI_Address");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_1_0_tAFOX_2.setName("cit:CI_Address");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_1_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_1_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_1_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("electronicMailAddress");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_1_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:electronicMailAddress");
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_1_0_0_tAFOX_2
                                                    .setName("cit:electronicMailAddress");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_1_0_1_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_1_0_1_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_0_0_2_0_1_0_1_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_1_0_1_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("email") != null) {
                                                nestXMLTool_tAFOX_2.setText(
                                                        root_6_0_0_0_2_0_1_0_1_0_1_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("email"));
                                            }
                                            root_6_0_0_0_2_0_1_0_1_0_1_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_2_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_2_tAFOX_2 = root_6_0_0_0_2_0_1_0_tAFOX_2
                                                        .addElement("individual");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_2_tAFOX_2 = root_6_0_0_0_2_0_1_0_tAFOX_2
                                                        .addElement("cit:individual");
                                            }
                                            root_6_0_0_0_2_0_1_0_2_tAFOX_2.setName("cit:individual");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_2_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_2_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_2_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_2_tAFOX_2
                                                        .addElement("CI_Individual");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_2_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_2_tAFOX_2
                                                        .addElement("cit:CI_Individual");
                                            }
                                            root_6_0_0_0_2_0_1_0_2_0_tAFOX_2.setName("cit:CI_Individual");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_2_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_2_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_0_0_2_0_1_0_2_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_2_0_tAFOX_2
                                                        .addElement("name");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_2_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_2_0_tAFOX_2
                                                        .addElement("cit:name");
                                            }
                                            root_6_0_0_0_2_0_1_0_2_0_0_tAFOX_2.setName("cit:name");
                                            org.dom4j.Element root_6_0_0_0_2_0_1_0_2_0_0_0_tAFOX_2;
                                            if (root_6_0_0_0_2_0_1_0_2_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_0_0_2_0_1_0_2_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_2_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_0_0_2_0_1_0_2_0_0_0_tAFOX_2 = root_6_0_0_0_2_0_1_0_2_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("individualName") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_0_0_2_0_1_0_2_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("individualName"));
                                            }
                                            root_6_0_0_0_2_0_1_0_2_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_1_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_1_tAFOX_2 = root_6_0_tAFOX_2.addElement("abstract");
                                            } else {
                                                root_6_0_1_tAFOX_2 = root_6_0_tAFOX_2.addElement("mri:abstract");
                                            }
                                            root_6_0_1_tAFOX_2.setName("mri:abstract");
                                            org.dom4j.Element root_6_0_1_0_tAFOX_2;
                                            if (root_6_0_1_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_1_0_tAFOX_2 = root_6_0_1_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_1_0_tAFOX_2 = root_6_0_1_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            root_6_0_1_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_2_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_2_tAFOX_2 = root_6_0_tAFOX_2.addElement("purpose");
                                            } else {
                                                root_6_0_2_tAFOX_2 = root_6_0_tAFOX_2.addElement("mri:purpose");
                                            }
                                            root_6_0_2_tAFOX_2.setName("mri:purpose");
                                            org.dom4j.Element root_6_0_2_0_tAFOX_2;
                                            if (root_6_0_2_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_2_0_tAFOX_2 = root_6_0_2_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_2_0_tAFOX_2 = root_6_0_2_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            root_6_0_2_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_3_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_3_tAFOX_2 = root_6_0_tAFOX_2.addElement("status");
                                            } else {
                                                root_6_0_3_tAFOX_2 = root_6_0_tAFOX_2.addElement("mri:status");
                                            }
                                            root_6_0_3_tAFOX_2.setName("mri:status");
                                            org.dom4j.Element root_6_0_3_0_tAFOX_2;
                                            if (root_6_0_3_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_6_0_3_0_tAFOX_2 = root_6_0_3_tAFOX_2
                                                        .addElement("MD_ProgressCode");
                                            } else {
                                                root_6_0_3_0_tAFOX_2 = root_6_0_3_tAFOX_2
                                                        .addElement("mcc:MD_ProgressCode");
                                            }
                                            root_6_0_3_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_ProgressCode");
                                            root_6_0_3_0_tAFOX_2.addAttribute("codeListValue", "completed");
                                            root_6_0_3_0_tAFOX_2.setName("mcc:MD_ProgressCode");
                                            org.dom4j.Element root_6_0_4_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_4_tAFOX_2 = root_6_0_tAFOX_2.addElement("pointOfContact");
                                            } else {
                                                root_6_0_4_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:pointOfContact");
                                            }
                                            root_6_0_4_tAFOX_2.setName("mri:pointOfContact");
                                            org.dom4j.Element root_6_0_4_0_tAFOX_2;
                                            if (root_6_0_4_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_tAFOX_2 = root_6_0_4_tAFOX_2
                                                        .addElement("CI_Responsibility");
                                            } else {
                                                root_6_0_4_0_tAFOX_2 = root_6_0_4_tAFOX_2
                                                        .addElement("cit:CI_Responsibility");
                                            }
                                            root_6_0_4_0_tAFOX_2.setName("cit:CI_Responsibility");
                                            org.dom4j.Element root_6_0_4_0_0_tAFOX_2;
                                            if (root_6_0_4_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_0_tAFOX_2 = root_6_0_4_0_tAFOX_2.addElement("role");
                                            } else {
                                                root_6_0_4_0_0_tAFOX_2 = root_6_0_4_0_tAFOX_2
                                                        .addElement("cit:role");
                                            }
                                            root_6_0_4_0_0_tAFOX_2.setName("cit:role");
                                            org.dom4j.Element root_6_0_4_0_0_0_tAFOX_2;
                                            if (root_6_0_4_0_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_0_0_tAFOX_2 = root_6_0_4_0_0_tAFOX_2
                                                        .addElement("CI_RoleCode");
                                            } else {
                                                root_6_0_4_0_0_0_tAFOX_2 = root_6_0_4_0_0_tAFOX_2
                                                        .addElement("cit:CI_RoleCode");
                                            }
                                            root_6_0_4_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#CI_RoleCode");
                                            root_6_0_4_0_0_0_tAFOX_2.addAttribute("codeListValue", "originator");
                                            root_6_0_4_0_0_0_tAFOX_2.setName("cit:CI_RoleCode");
                                            org.dom4j.Element root_6_0_4_0_1_tAFOX_2;
                                            if (root_6_0_4_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_tAFOX_2 = root_6_0_4_0_tAFOX_2.addElement("party");
                                            } else {
                                                root_6_0_4_0_1_tAFOX_2 = root_6_0_4_0_tAFOX_2
                                                        .addElement("cit:party");
                                            }
                                            root_6_0_4_0_1_tAFOX_2.setName("cit:party");
                                            org.dom4j.Element root_6_0_4_0_1_0_tAFOX_2;
                                            if (root_6_0_4_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_tAFOX_2 = root_6_0_4_0_1_tAFOX_2
                                                        .addElement("CI_Organisation");
                                            } else {
                                                root_6_0_4_0_1_0_tAFOX_2 = root_6_0_4_0_1_tAFOX_2
                                                        .addElement("cit:CI_Organisation");
                                            }
                                            root_6_0_4_0_1_0_tAFOX_2.setName("cit:CI_Organisation");
                                            org.dom4j.Element root_6_0_4_0_1_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_0_tAFOX_2 = root_6_0_4_0_1_0_tAFOX_2
                                                        .addElement("name");
                                            } else {
                                                root_6_0_4_0_1_0_0_tAFOX_2 = root_6_0_4_0_1_0_tAFOX_2
                                                        .addElement("cit:name");
                                            }
                                            root_6_0_4_0_1_0_0_tAFOX_2.setName("cit:name");
                                            org.dom4j.Element root_6_0_4_0_1_0_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("organisationName") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("organisationName"));
                                            }
                                            root_6_0_4_0_1_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_tAFOX_2;
                                            if (root_6_0_4_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_tAFOX_2 = root_6_0_4_0_1_0_tAFOX_2
                                                        .addElement("contactInfo");
                                            } else {
                                                root_6_0_4_0_1_0_1_tAFOX_2 = root_6_0_4_0_1_0_tAFOX_2
                                                        .addElement("cit:contactInfo");
                                            }
                                            root_6_0_4_0_1_0_1_tAFOX_2.setName("cit:contactInfo");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_tAFOX_2 = root_6_0_4_0_1_0_1_tAFOX_2
                                                        .addElement("CI_Contact");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_tAFOX_2 = root_6_0_4_0_1_0_1_tAFOX_2
                                                        .addElement("cit:CI_Contact");
                                            }
                                            root_6_0_4_0_1_0_1_0_tAFOX_2.setName("cit:CI_Contact");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_tAFOX_2
                                                        .addElement("address");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_tAFOX_2
                                                        .addElement("cit:address");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_tAFOX_2.setName("cit:address");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("CI_Address");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_tAFOX_2
                                                        .addElement("cit:CI_Address");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_tAFOX_2.setName("cit:CI_Address");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("deliveryPoint");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:deliveryPoint");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_0_tAFOX_2.setName("cit:deliveryPoint");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("deliveryPoint") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_1_0_0_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("deliveryPoint"));
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_1_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_1_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("city");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_1_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:city");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_1_tAFOX_2.setName("cit:city");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_1_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_1_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_1_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_1_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_1_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_1_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("city") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_1_0_0_0_1_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("city"));
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_1_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_2_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_2_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("administrativeArea");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_2_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:administrativeArea");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_2_tAFOX_2.setName("cit:administrativeArea");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_2_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_2_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_2_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_2_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_2_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_2_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("administrativeArea") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_1_0_0_0_2_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("administrativeArea"));
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_2_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_3_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_3_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("postalCode");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_3_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:postalCode");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_3_tAFOX_2.setName("cit:postalCode");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_3_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_3_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_3_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_3_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_3_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_3_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("postalCode") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_1_0_0_0_3_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("postalCode"));
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_3_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_4_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_4_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("country");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_4_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:country");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_4_tAFOX_2.setName("cit:country");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_4_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_4_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_4_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_4_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_4_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_4_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("country") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_1_0_0_0_4_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("country"));
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_4_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_5_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_5_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("electronicMailAddress");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_5_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_tAFOX_2
                                                        .addElement("cit:electronicMailAddress");
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_5_tAFOX_2.setName("cit:electronicMailAddress");
                                            org.dom4j.Element root_6_0_4_0_1_0_1_0_0_0_5_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_1_0_0_0_5_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_1_0_0_0_5_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_5_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_1_0_0_0_5_0_tAFOX_2 = root_6_0_4_0_1_0_1_0_0_0_5_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("email") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_1_0_0_0_5_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("email"));
                                            }
                                            root_6_0_4_0_1_0_1_0_0_0_5_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_2_tAFOX_2;
                                            if (root_6_0_4_0_1_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_2_tAFOX_2 = root_6_0_4_0_1_0_tAFOX_2
                                                        .addElement("individual");
                                            } else {
                                                root_6_0_4_0_1_0_2_tAFOX_2 = root_6_0_4_0_1_0_tAFOX_2
                                                        .addElement("cit:individual");
                                            }
                                            root_6_0_4_0_1_0_2_tAFOX_2.setName("cit:individual");
                                            org.dom4j.Element root_6_0_4_0_1_0_2_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_2_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_2_0_tAFOX_2 = root_6_0_4_0_1_0_2_tAFOX_2
                                                        .addElement("CI_Individual");
                                            } else {
                                                root_6_0_4_0_1_0_2_0_tAFOX_2 = root_6_0_4_0_1_0_2_tAFOX_2
                                                        .addElement("cit:CI_Individual");
                                            }
                                            root_6_0_4_0_1_0_2_0_tAFOX_2.setName("cit:CI_Individual");
                                            org.dom4j.Element root_6_0_4_0_1_0_2_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_2_0_0_tAFOX_2 = root_6_0_4_0_1_0_2_0_tAFOX_2
                                                        .addElement("name");
                                            } else {
                                                root_6_0_4_0_1_0_2_0_0_tAFOX_2 = root_6_0_4_0_1_0_2_0_tAFOX_2
                                                        .addElement("cit:name");
                                            }
                                            root_6_0_4_0_1_0_2_0_0_tAFOX_2.setName("cit:name");
                                            org.dom4j.Element root_6_0_4_0_1_0_2_0_0_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_2_0_0_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_2_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_2_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_2_0_0_0_tAFOX_2 = root_6_0_4_0_1_0_2_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("individualName") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_2_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("individualName"));
                                            }
                                            root_6_0_4_0_1_0_2_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_4_0_1_0_2_0_1_tAFOX_2;
                                            if (root_6_0_4_0_1_0_2_0_tAFOX_2.getNamespaceForPrefix("cit") == null) {
                                                root_6_0_4_0_1_0_2_0_1_tAFOX_2 = root_6_0_4_0_1_0_2_0_tAFOX_2
                                                        .addElement("positionName");
                                            } else {
                                                root_6_0_4_0_1_0_2_0_1_tAFOX_2 = root_6_0_4_0_1_0_2_0_tAFOX_2
                                                        .addElement("cit:positionName");
                                            }
                                            root_6_0_4_0_1_0_2_0_1_tAFOX_2.setName("cit:positionName");
                                            org.dom4j.Element root_6_0_4_0_1_0_2_0_1_0_tAFOX_2;
                                            if (root_6_0_4_0_1_0_2_0_1_tAFOX_2
                                                    .getNamespaceForPrefix("gco") == null) {
                                                root_6_0_4_0_1_0_2_0_1_0_tAFOX_2 = root_6_0_4_0_1_0_2_0_1_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_4_0_1_0_2_0_1_0_tAFOX_2 = root_6_0_4_0_1_0_2_0_1_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("positionName") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_4_0_1_0_2_0_1_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("positionName"));
                                            }
                                            root_6_0_4_0_1_0_2_0_1_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_5_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_5_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("spatialRepresentationType");
                                            } else {
                                                root_6_0_5_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:spatialRepresentationType");
                                            }
                                            root_6_0_5_tAFOX_2.setName("mri:spatialRepresentationType");
                                            org.dom4j.Element root_6_0_5_0_tAFOX_2;
                                            if (root_6_0_5_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_6_0_5_0_tAFOX_2 = root_6_0_5_tAFOX_2
                                                        .addElement("MD_SpatialRepresentationTypeCode");
                                            } else {
                                                root_6_0_5_0_tAFOX_2 = root_6_0_5_tAFOX_2
                                                        .addElement("mcc:MD_SpatialRepresentationTypeCode");
                                            }
                                            root_6_0_5_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/ML_gmxCodelists.xml#MD_SpatialRepresentationTypeCode");
                                            if (valueMap_tAFOX_2.get("spatialRepresentationType") != null) {
                                                root_6_0_5_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("spatialRepresentationType"));
                                            }
                                            root_6_0_5_0_tAFOX_2.setName("mcc:MD_SpatialRepresentationTypeCode");
                                            org.dom4j.Element root_6_0_6_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_6_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("spatialResolution");
                                            } else {
                                                root_6_0_6_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:spatialResolution");
                                            }
                                            root_6_0_6_tAFOX_2.setName("mri:spatialResolution");
                                            org.dom4j.Element root_6_0_6_0_tAFOX_2;
                                            if (root_6_0_6_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_6_0_tAFOX_2 = root_6_0_6_tAFOX_2
                                                        .addElement("MD_Resolution");
                                            } else {
                                                root_6_0_6_0_tAFOX_2 = root_6_0_6_tAFOX_2
                                                        .addElement("mri:MD_Resolution");
                                            }
                                            root_6_0_6_0_tAFOX_2.setName("mri:MD_Resolution");
                                            org.dom4j.Element root_6_0_6_0_0_tAFOX_2;
                                            if (root_6_0_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_6_0_0_tAFOX_2 = root_6_0_6_0_tAFOX_2
                                                        .addElement("equivalentScale");
                                            } else {
                                                root_6_0_6_0_0_tAFOX_2 = root_6_0_6_0_tAFOX_2
                                                        .addElement("mri:equivalentScale");
                                            }
                                            root_6_0_6_0_0_tAFOX_2.setName("mri:equivalentScale");
                                            org.dom4j.Element root_6_0_6_0_0_0_tAFOX_2;
                                            if (root_6_0_6_0_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_6_0_0_0_tAFOX_2 = root_6_0_6_0_0_tAFOX_2
                                                        .addElement("MD_RepresentativeFraction");
                                            } else {
                                                root_6_0_6_0_0_0_tAFOX_2 = root_6_0_6_0_0_tAFOX_2
                                                        .addElement("mri:MD_RepresentativeFraction");
                                            }
                                            root_6_0_6_0_0_0_tAFOX_2.setName("mri:MD_RepresentativeFraction");
                                            org.dom4j.Element root_6_0_6_0_0_0_0_tAFOX_2;
                                            if (root_6_0_6_0_0_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_6_0_0_0_0_tAFOX_2 = root_6_0_6_0_0_0_tAFOX_2
                                                        .addElement("denominator");
                                            } else {
                                                root_6_0_6_0_0_0_0_tAFOX_2 = root_6_0_6_0_0_0_tAFOX_2
                                                        .addElement("mri:denominator");
                                            }
                                            root_6_0_6_0_0_0_0_tAFOX_2.setName("mri:denominator");
                                            org.dom4j.Element root_6_0_7_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_7_tAFOX_2 = root_6_0_tAFOX_2.addElement("topicCategory");
                                            } else {
                                                root_6_0_7_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:topicCategory");
                                            }
                                            root_6_0_7_tAFOX_2.setName("mri:topicCategory");
                                            org.dom4j.Element root_6_0_8_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_8_tAFOX_2 = root_6_0_tAFOX_2.addElement("extent");
                                            } else {
                                                root_6_0_8_tAFOX_2 = root_6_0_tAFOX_2.addElement("mri:extent");
                                            }
                                            root_6_0_8_tAFOX_2.setName("mri:extent");
                                            org.dom4j.Element root_6_0_8_0_tAFOX_2;
                                            if (root_6_0_8_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_8_0_tAFOX_2 = root_6_0_8_tAFOX_2.addElement("EX_Extent");
                                            } else {
                                                root_6_0_8_0_tAFOX_2 = root_6_0_8_tAFOX_2
                                                        .addElement("gex:EX_Extent");
                                            }
                                            root_6_0_8_0_tAFOX_2.setName("gex:EX_Extent");
                                            org.dom4j.Element root_6_0_8_0_0_tAFOX_2;
                                            if (root_6_0_8_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_8_0_0_tAFOX_2 = root_6_0_8_0_tAFOX_2
                                                        .addElement("temporalElement");
                                            } else {
                                                root_6_0_8_0_0_tAFOX_2 = root_6_0_8_0_tAFOX_2
                                                        .addElement("gex:temporalElement");
                                            }
                                            root_6_0_8_0_0_tAFOX_2.setName("gex:temporalElement");
                                            org.dom4j.Element root_6_0_8_0_0_0_tAFOX_2;
                                            if (root_6_0_8_0_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_8_0_0_0_tAFOX_2 = root_6_0_8_0_0_tAFOX_2
                                                        .addElement("EX_TemporalExtent");
                                            } else {
                                                root_6_0_8_0_0_0_tAFOX_2 = root_6_0_8_0_0_tAFOX_2
                                                        .addElement("gex:EX_TemporalExtent");
                                            }
                                            root_6_0_8_0_0_0_tAFOX_2.setName("gex:EX_TemporalExtent");
                                            org.dom4j.Element root_6_0_8_0_0_0_0_tAFOX_2;
                                            if (root_6_0_8_0_0_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_8_0_0_0_0_tAFOX_2 = root_6_0_8_0_0_0_tAFOX_2
                                                        .addElement("extent");
                                            } else {
                                                root_6_0_8_0_0_0_0_tAFOX_2 = root_6_0_8_0_0_0_tAFOX_2
                                                        .addElement("gex:extent");
                                            }
                                            root_6_0_8_0_0_0_0_tAFOX_2.setName("gex:extent");
                                            org.dom4j.Element root_6_0_8_0_0_0_0_0_tAFOX_2;
                                            if (root_6_0_8_0_0_0_0_tAFOX_2.getNamespaceForPrefix("gml") == null) {
                                                root_6_0_8_0_0_0_0_0_tAFOX_2 = root_6_0_8_0_0_0_0_tAFOX_2
                                                        .addElement("TimePeriod");
                                            } else {
                                                root_6_0_8_0_0_0_0_0_tAFOX_2 = root_6_0_8_0_0_0_0_tAFOX_2
                                                        .addElement("gml:TimePeriod");
                                            }
                                            root_6_0_8_0_0_0_0_0_tAFOX_2.addAttribute("gml:id", "A1234");
                                            root_6_0_8_0_0_0_0_0_tAFOX_2.setName("gml:TimePeriod");
                                            org.dom4j.Element root_6_0_8_0_0_0_0_0_0_tAFOX_2;
                                            if (root_6_0_8_0_0_0_0_0_tAFOX_2.getNamespaceForPrefix("gml") == null) {
                                                root_6_0_8_0_0_0_0_0_0_tAFOX_2 = root_6_0_8_0_0_0_0_0_tAFOX_2
                                                        .addElement("beginPosition");
                                            } else {
                                                root_6_0_8_0_0_0_0_0_0_tAFOX_2 = root_6_0_8_0_0_0_0_0_tAFOX_2
                                                        .addElement("gml:beginPosition");
                                            }
                                            root_6_0_8_0_0_0_0_0_0_tAFOX_2.setName("gml:beginPosition");
                                            org.dom4j.Element root_6_0_8_0_0_0_0_0_1_tAFOX_2;
                                            if (root_6_0_8_0_0_0_0_0_tAFOX_2.getNamespaceForPrefix("gml") == null) {
                                                root_6_0_8_0_0_0_0_0_1_tAFOX_2 = root_6_0_8_0_0_0_0_0_tAFOX_2
                                                        .addElement("endPosition");
                                            } else {
                                                root_6_0_8_0_0_0_0_0_1_tAFOX_2 = root_6_0_8_0_0_0_0_0_tAFOX_2
                                                        .addElement("gml:endPosition");
                                            }
                                            root_6_0_8_0_0_0_0_0_1_tAFOX_2.setName("gml:endPosition");
                                            org.dom4j.Element root_6_0_9_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_9_tAFOX_2 = root_6_0_tAFOX_2.addElement("extent");
                                            } else {
                                                root_6_0_9_tAFOX_2 = root_6_0_tAFOX_2.addElement("mri:extent");
                                            }
                                            root_6_0_9_tAFOX_2.setName("mri:extent");
                                            org.dom4j.Element root_6_0_9_0_tAFOX_2;
                                            if (root_6_0_9_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_9_0_tAFOX_2 = root_6_0_9_tAFOX_2.addElement("EX_Extent");
                                            } else {
                                                root_6_0_9_0_tAFOX_2 = root_6_0_9_tAFOX_2
                                                        .addElement("gex:EX_Extent");
                                            }
                                            root_6_0_9_0_tAFOX_2.setName("gex:EX_Extent");
                                            org.dom4j.Element root_6_0_9_0_0_tAFOX_2;
                                            if (root_6_0_9_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_9_0_0_tAFOX_2 = root_6_0_9_0_tAFOX_2
                                                        .addElement("geographicElement");
                                            } else {
                                                root_6_0_9_0_0_tAFOX_2 = root_6_0_9_0_tAFOX_2
                                                        .addElement("gex:geographicElement");
                                            }
                                            root_6_0_9_0_0_tAFOX_2.setName("gex:geographicElement");
                                            org.dom4j.Element root_6_0_9_0_0_0_tAFOX_2;
                                            if (root_6_0_9_0_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_9_0_0_0_tAFOX_2 = root_6_0_9_0_0_tAFOX_2
                                                        .addElement("EX_GeographicBoundingBox");
                                            } else {
                                                root_6_0_9_0_0_0_tAFOX_2 = root_6_0_9_0_0_tAFOX_2
                                                        .addElement("gex:EX_GeographicBoundingBox");
                                            }
                                            root_6_0_9_0_0_0_tAFOX_2.setName("gex:EX_GeographicBoundingBox");
                                            org.dom4j.Element root_6_0_9_0_0_0_0_tAFOX_2;
                                            if (root_6_0_9_0_0_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_9_0_0_0_0_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("westBoundLongitude");
                                            } else {
                                                root_6_0_9_0_0_0_0_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("gex:westBoundLongitude");
                                            }
                                            root_6_0_9_0_0_0_0_tAFOX_2.setName("gex:westBoundLongitude");
                                            org.dom4j.Element root_6_0_9_0_0_0_0_0_tAFOX_2;
                                            if (root_6_0_9_0_0_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_9_0_0_0_0_0_tAFOX_2 = root_6_0_9_0_0_0_0_tAFOX_2
                                                        .addElement("Decimal");
                                            } else {
                                                root_6_0_9_0_0_0_0_0_tAFOX_2 = root_6_0_9_0_0_0_0_tAFOX_2
                                                        .addElement("gco:Decimal");
                                            }
                                            if (valueMap_tAFOX_2.get("west") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_9_0_0_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("west"));
                                            }
                                            root_6_0_9_0_0_0_0_0_tAFOX_2.setName("gco:Decimal");
                                            org.dom4j.Element root_6_0_9_0_0_0_1_tAFOX_2;
                                            if (root_6_0_9_0_0_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_9_0_0_0_1_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("eastBoundLongitude");
                                            } else {
                                                root_6_0_9_0_0_0_1_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("gex:eastBoundLongitude");
                                            }
                                            root_6_0_9_0_0_0_1_tAFOX_2.setName("gex:eastBoundLongitude");
                                            org.dom4j.Element root_6_0_9_0_0_0_1_0_tAFOX_2;
                                            if (root_6_0_9_0_0_0_1_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_9_0_0_0_1_0_tAFOX_2 = root_6_0_9_0_0_0_1_tAFOX_2
                                                        .addElement("Decimal");
                                            } else {
                                                root_6_0_9_0_0_0_1_0_tAFOX_2 = root_6_0_9_0_0_0_1_tAFOX_2
                                                        .addElement("gco:Decimal");
                                            }
                                            if (valueMap_tAFOX_2.get("east") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_9_0_0_0_1_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("east"));
                                            }
                                            root_6_0_9_0_0_0_1_0_tAFOX_2.setName("gco:Decimal");
                                            org.dom4j.Element root_6_0_9_0_0_0_2_tAFOX_2;
                                            if (root_6_0_9_0_0_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_9_0_0_0_2_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("southBoundLatitude");
                                            } else {
                                                root_6_0_9_0_0_0_2_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("gex:southBoundLatitude");
                                            }
                                            root_6_0_9_0_0_0_2_tAFOX_2.setName("gex:southBoundLatitude");
                                            org.dom4j.Element root_6_0_9_0_0_0_2_0_tAFOX_2;
                                            if (root_6_0_9_0_0_0_2_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_9_0_0_0_2_0_tAFOX_2 = root_6_0_9_0_0_0_2_tAFOX_2
                                                        .addElement("Decimal");
                                            } else {
                                                root_6_0_9_0_0_0_2_0_tAFOX_2 = root_6_0_9_0_0_0_2_tAFOX_2
                                                        .addElement("gco:Decimal");
                                            }
                                            if (valueMap_tAFOX_2.get("south") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_9_0_0_0_2_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("south"));
                                            }
                                            root_6_0_9_0_0_0_2_0_tAFOX_2.setName("gco:Decimal");
                                            org.dom4j.Element root_6_0_9_0_0_0_3_tAFOX_2;
                                            if (root_6_0_9_0_0_0_tAFOX_2.getNamespaceForPrefix("gex") == null) {
                                                root_6_0_9_0_0_0_3_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("northBoundLatitude");
                                            } else {
                                                root_6_0_9_0_0_0_3_tAFOX_2 = root_6_0_9_0_0_0_tAFOX_2
                                                        .addElement("gex:northBoundLatitude");
                                            }
                                            root_6_0_9_0_0_0_3_tAFOX_2.setName("gex:northBoundLatitude");
                                            org.dom4j.Element root_6_0_9_0_0_0_3_0_tAFOX_2;
                                            if (root_6_0_9_0_0_0_3_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_9_0_0_0_3_0_tAFOX_2 = root_6_0_9_0_0_0_3_tAFOX_2
                                                        .addElement("Decimal");
                                            } else {
                                                root_6_0_9_0_0_0_3_0_tAFOX_2 = root_6_0_9_0_0_0_3_tAFOX_2
                                                        .addElement("gco:Decimal");
                                            }
                                            if (valueMap_tAFOX_2.get("north") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_9_0_0_0_3_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("north"));
                                            }
                                            root_6_0_9_0_0_0_3_0_tAFOX_2.setName("gco:Decimal");
                                            org.dom4j.Element root_6_0_10_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_10_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("resourceMaintenance");
                                            } else {
                                                root_6_0_10_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:resourceMaintenance");
                                            }
                                            root_6_0_10_tAFOX_2.setName("mri:resourceMaintenance");
                                            org.dom4j.Element root_6_0_10_0_tAFOX_2;
                                            if (root_6_0_10_tAFOX_2.getNamespaceForPrefix("mmi") == null) {
                                                root_6_0_10_0_tAFOX_2 = root_6_0_10_tAFOX_2
                                                        .addElement("MD_MaintenanceInformation");
                                            } else {
                                                root_6_0_10_0_tAFOX_2 = root_6_0_10_tAFOX_2
                                                        .addElement("mmi:MD_MaintenanceInformation");
                                            }
                                            root_6_0_10_0_tAFOX_2.setName("mmi:MD_MaintenanceInformation");
                                            org.dom4j.Element root_6_0_10_0_0_tAFOX_2;
                                            if (root_6_0_10_0_tAFOX_2.getNamespaceForPrefix("mmi") == null) {
                                                root_6_0_10_0_0_tAFOX_2 = root_6_0_10_0_tAFOX_2
                                                        .addElement("maintenanceAndUpdateFrequency");
                                            } else {
                                                root_6_0_10_0_0_tAFOX_2 = root_6_0_10_0_tAFOX_2
                                                        .addElement("mmi:maintenanceAndUpdateFrequency");
                                            }
                                            root_6_0_10_0_0_tAFOX_2.setName("mmi:maintenanceAndUpdateFrequency");
                                            org.dom4j.Element root_6_0_10_0_0_0_tAFOX_2;
                                            if (root_6_0_10_0_0_tAFOX_2.getNamespaceForPrefix("mmi") == null) {
                                                root_6_0_10_0_0_0_tAFOX_2 = root_6_0_10_0_0_tAFOX_2
                                                        .addElement("MD_MaintenanceFrequencyCode");
                                            } else {
                                                root_6_0_10_0_0_0_tAFOX_2 = root_6_0_10_0_0_tAFOX_2
                                                        .addElement("mmi:MD_MaintenanceFrequencyCode");
                                            }
                                            root_6_0_10_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_MaintenanceFrequencyCode");
                                            root_6_0_10_0_0_0_tAFOX_2.addAttribute("codeListValue", "asNeeded");
                                            root_6_0_10_0_0_0_tAFOX_2.setName("mmi:MD_MaintenanceFrequencyCode");
                                            org.dom4j.Element root_6_0_11_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_11_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("descriptiveKeywords");
                                            } else {
                                                root_6_0_11_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:descriptiveKeywords");
                                            }
                                            root_6_0_11_tAFOX_2.setName("mri:descriptiveKeywords");
                                            org.dom4j.Element root_6_0_11_0_tAFOX_2;
                                            if (root_6_0_11_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_11_0_tAFOX_2 = root_6_0_11_tAFOX_2
                                                        .addElement("MD_Keywords");
                                            } else {
                                                root_6_0_11_0_tAFOX_2 = root_6_0_11_tAFOX_2
                                                        .addElement("mri:MD_Keywords");
                                            }
                                            root_6_0_11_0_tAFOX_2.setName("mri:MD_Keywords");
                                            org.dom4j.Element root_6_0_11_0_0_tAFOX_2;
                                            if (root_6_0_11_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_11_0_0_tAFOX_2 = root_6_0_11_0_tAFOX_2
                                                        .addElement("keyword");
                                            } else {
                                                root_6_0_11_0_0_tAFOX_2 = root_6_0_11_0_tAFOX_2
                                                        .addElement("mri:keyword");
                                            }
                                            root_6_0_11_0_0_tAFOX_2.setName("mri:keyword");
                                            org.dom4j.Element root_6_0_11_0_0_0_tAFOX_2;
                                            if (root_6_0_11_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_11_0_0_0_tAFOX_2 = root_6_0_11_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_11_0_0_0_tAFOX_2 = root_6_0_11_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("keyword") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_11_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("keyword"));
                                            }
                                            root_6_0_11_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_11_0_1_tAFOX_2;
                                            if (root_6_0_11_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_11_0_1_tAFOX_2 = root_6_0_11_0_tAFOX_2.addElement("type");
                                            } else {
                                                root_6_0_11_0_1_tAFOX_2 = root_6_0_11_0_tAFOX_2
                                                        .addElement("mri:type");
                                            }
                                            root_6_0_11_0_1_tAFOX_2.setName("mri:type");
                                            org.dom4j.Element root_6_0_11_0_1_0_tAFOX_2;
                                            if (root_6_0_11_0_1_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_11_0_1_0_tAFOX_2 = root_6_0_11_0_1_tAFOX_2
                                                        .addElement("MD_KeywordTypeCode");
                                            } else {
                                                root_6_0_11_0_1_0_tAFOX_2 = root_6_0_11_0_1_tAFOX_2
                                                        .addElement("mri:MD_KeywordTypeCode");
                                            }
                                            root_6_0_11_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_KeywordTypeCode");
                                            if (valueMap_tAFOX_2.get("keyword1_theme") != null) {
                                                root_6_0_11_0_1_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("keyword1_theme"));
                                            }
                                            root_6_0_11_0_1_0_tAFOX_2.setName("mri:MD_KeywordTypeCode");
                                            org.dom4j.Element root_6_0_12_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_12_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("descriptiveKeywords");
                                            } else {
                                                root_6_0_12_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:descriptiveKeywords");
                                            }
                                            root_6_0_12_tAFOX_2.setName("mri:descriptiveKeywords");
                                            org.dom4j.Element root_6_0_12_0_tAFOX_2;
                                            if (root_6_0_12_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_12_0_tAFOX_2 = root_6_0_12_tAFOX_2
                                                        .addElement("MD_Keywords");
                                            } else {
                                                root_6_0_12_0_tAFOX_2 = root_6_0_12_tAFOX_2
                                                        .addElement("mri:MD_Keywords");
                                            }
                                            root_6_0_12_0_tAFOX_2.setName("mri:MD_Keywords");
                                            org.dom4j.Element root_6_0_12_0_0_tAFOX_2;
                                            if (root_6_0_12_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_12_0_0_tAFOX_2 = root_6_0_12_0_tAFOX_2
                                                        .addElement("keyword");
                                            } else {
                                                root_6_0_12_0_0_tAFOX_2 = root_6_0_12_0_tAFOX_2
                                                        .addElement("mri:keyword");
                                            }
                                            root_6_0_12_0_0_tAFOX_2.setName("mri:keyword");
                                            org.dom4j.Element root_6_0_12_0_0_0_tAFOX_2;
                                            if (root_6_0_12_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_12_0_0_0_tAFOX_2 = root_6_0_12_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_12_0_0_0_tAFOX_2 = root_6_0_12_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("keyword2") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_12_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("keyword2"));
                                            }
                                            root_6_0_12_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_12_0_1_tAFOX_2;
                                            if (root_6_0_12_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_12_0_1_tAFOX_2 = root_6_0_12_0_tAFOX_2.addElement("type");
                                            } else {
                                                root_6_0_12_0_1_tAFOX_2 = root_6_0_12_0_tAFOX_2
                                                        .addElement("mri:type");
                                            }
                                            root_6_0_12_0_1_tAFOX_2.setName("mri:type");
                                            org.dom4j.Element root_6_0_12_0_1_0_tAFOX_2;
                                            if (root_6_0_12_0_1_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_12_0_1_0_tAFOX_2 = root_6_0_12_0_1_tAFOX_2
                                                        .addElement("MD_KeywordTypeCode");
                                            } else {
                                                root_6_0_12_0_1_0_tAFOX_2 = root_6_0_12_0_1_tAFOX_2
                                                        .addElement("mri:MD_KeywordTypeCode");
                                            }
                                            root_6_0_12_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_KeywordTypeCode");
                                            if (valueMap_tAFOX_2.get("keyword2_theme") != null) {
                                                root_6_0_12_0_1_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("keyword2_theme"));
                                            }
                                            root_6_0_12_0_1_0_tAFOX_2.setName("mri:MD_KeywordTypeCode");
                                            org.dom4j.Element root_6_0_13_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_13_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("resourceConstraints");
                                            } else {
                                                root_6_0_13_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:resourceConstraints");
                                            }
                                            root_6_0_13_tAFOX_2.setName("mri:resourceConstraints");
                                            org.dom4j.Element root_6_0_13_0_tAFOX_2;
                                            if (root_6_0_13_tAFOX_2.getNamespaceForPrefix("mco") == null) {
                                                root_6_0_13_0_tAFOX_2 = root_6_0_13_tAFOX_2
                                                        .addElement("MD_LegalConstraints");
                                            } else {
                                                root_6_0_13_0_tAFOX_2 = root_6_0_13_tAFOX_2
                                                        .addElement("mco:MD_LegalConstraints");
                                            }
                                            root_6_0_13_0_tAFOX_2.setName("mco:MD_LegalConstraints");
                                            org.dom4j.Element root_6_0_13_0_0_tAFOX_2;
                                            if (root_6_0_13_0_tAFOX_2.getNamespaceForPrefix("mco") == null) {
                                                root_6_0_13_0_0_tAFOX_2 = root_6_0_13_0_tAFOX_2
                                                        .addElement("accessConstraints");
                                            } else {
                                                root_6_0_13_0_0_tAFOX_2 = root_6_0_13_0_tAFOX_2
                                                        .addElement("mco:accessConstraints");
                                            }
                                            root_6_0_13_0_0_tAFOX_2.setName("mco:accessConstraints");
                                            org.dom4j.Element root_6_0_13_0_0_0_tAFOX_2;
                                            if (root_6_0_13_0_0_tAFOX_2.getNamespaceForPrefix("mco") == null) {
                                                root_6_0_13_0_0_0_tAFOX_2 = root_6_0_13_0_0_tAFOX_2
                                                        .addElement("MD_RestrictionCode");
                                            } else {
                                                root_6_0_13_0_0_0_tAFOX_2 = root_6_0_13_0_0_tAFOX_2
                                                        .addElement("mco:MD_RestrictionCode");
                                            }
                                            root_6_0_13_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_RestrictionCode");
                                            root_6_0_13_0_0_0_tAFOX_2.addAttribute("codeListValue", "copyright");
                                            root_6_0_13_0_0_0_tAFOX_2.setName("mco:MD_RestrictionCode");
                                            org.dom4j.Element root_6_0_13_0_1_tAFOX_2;
                                            if (root_6_0_13_0_tAFOX_2.getNamespaceForPrefix("mco") == null) {
                                                root_6_0_13_0_1_tAFOX_2 = root_6_0_13_0_tAFOX_2
                                                        .addElement("useConstraints");
                                            } else {
                                                root_6_0_13_0_1_tAFOX_2 = root_6_0_13_0_tAFOX_2
                                                        .addElement("mco:useConstraints");
                                            }
                                            root_6_0_13_0_1_tAFOX_2.setName("mco:useConstraints");
                                            org.dom4j.Element root_6_0_13_0_1_0_tAFOX_2;
                                            if (root_6_0_13_0_1_tAFOX_2.getNamespaceForPrefix("mco") == null) {
                                                root_6_0_13_0_1_0_tAFOX_2 = root_6_0_13_0_1_tAFOX_2
                                                        .addElement("MD_RestrictionCode");
                                            } else {
                                                root_6_0_13_0_1_0_tAFOX_2 = root_6_0_13_0_1_tAFOX_2
                                                        .addElement("mco:MD_RestrictionCode");
                                            }
                                            root_6_0_13_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_RestrictionCode");
                                            root_6_0_13_0_1_0_tAFOX_2.addAttribute("codeListValue",
                                                    "otherRestrictions");
                                            root_6_0_13_0_1_0_tAFOX_2.setName("mco:MD_RestrictionCode");
                                            org.dom4j.Element root_6_0_13_0_2_tAFOX_2;
                                            if (root_6_0_13_0_tAFOX_2.getNamespaceForPrefix("mco") == null) {
                                                root_6_0_13_0_2_tAFOX_2 = root_6_0_13_0_tAFOX_2
                                                        .addElement("otherConstraints");
                                            } else {
                                                root_6_0_13_0_2_tAFOX_2 = root_6_0_13_0_tAFOX_2
                                                        .addElement("mco:otherConstraints");
                                            }
                                            root_6_0_13_0_2_tAFOX_2.setName("mco:otherConstraints");
                                            org.dom4j.Element root_6_0_13_0_2_0_tAFOX_2;
                                            if (root_6_0_13_0_2_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_13_0_2_0_tAFOX_2 = root_6_0_13_0_2_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_13_0_2_0_tAFOX_2 = root_6_0_13_0_2_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("useConstraints") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_6_0_13_0_2_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("useConstraints"));
                                            }
                                            root_6_0_13_0_2_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_6_0_14_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_14_tAFOX_2 = root_6_0_tAFOX_2.addElement("defaultLocale");
                                            } else {
                                                root_6_0_14_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:defaultLocale");
                                            }
                                            root_6_0_14_tAFOX_2.setName("mri:defaultLocale");
                                            org.dom4j.Element root_6_0_14_0_tAFOX_2;
                                            if (root_6_0_14_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_6_0_14_0_tAFOX_2 = root_6_0_14_tAFOX_2.addElement("PT_Locale");
                                            } else {
                                                root_6_0_14_0_tAFOX_2 = root_6_0_14_tAFOX_2
                                                        .addElement("lan:PT_Locale");
                                            }
                                            root_6_0_14_0_tAFOX_2.setName("lan:PT_Locale");
                                            org.dom4j.Element root_6_0_14_0_0_tAFOX_2;
                                            if (root_6_0_14_0_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_6_0_14_0_0_tAFOX_2 = root_6_0_14_0_tAFOX_2
                                                        .addElement("language");
                                            } else {
                                                root_6_0_14_0_0_tAFOX_2 = root_6_0_14_0_tAFOX_2
                                                        .addElement("lan:language");
                                            }
                                            root_6_0_14_0_0_tAFOX_2.setName("lan:language");
                                            org.dom4j.Element root_6_0_14_0_0_0_tAFOX_2;
                                            if (root_6_0_14_0_0_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_6_0_14_0_0_0_tAFOX_2 = root_6_0_14_0_0_tAFOX_2
                                                        .addElement("LanguageCode");
                                            } else {
                                                root_6_0_14_0_0_0_tAFOX_2 = root_6_0_14_0_0_tAFOX_2
                                                        .addElement("lan:LanguageCode");
                                            }
                                            root_6_0_14_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://www.loc.gov/standards/iso639-2/");
                                            if (valueMap_tAFOX_2.get("mdLanguage") != null) {
                                                root_6_0_14_0_0_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("mdLanguage"));
                                            }
                                            root_6_0_14_0_0_0_tAFOX_2.setName("lan:LanguageCode");
                                            org.dom4j.Element root_6_0_14_0_1_tAFOX_2;
                                            if (root_6_0_14_0_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_6_0_14_0_1_tAFOX_2 = root_6_0_14_0_tAFOX_2
                                                        .addElement("characterEncoding");
                                            } else {
                                                root_6_0_14_0_1_tAFOX_2 = root_6_0_14_0_tAFOX_2
                                                        .addElement("lan:characterEncoding");
                                            }
                                            root_6_0_14_0_1_tAFOX_2.setName("lan:characterEncoding");
                                            org.dom4j.Element root_6_0_14_0_1_0_tAFOX_2;
                                            if (root_6_0_14_0_1_tAFOX_2.getNamespaceForPrefix("lan") == null) {
                                                root_6_0_14_0_1_0_tAFOX_2 = root_6_0_14_0_1_tAFOX_2
                                                        .addElement("MD_CharacterSetCode");
                                            } else {
                                                root_6_0_14_0_1_0_tAFOX_2 = root_6_0_14_0_1_tAFOX_2
                                                        .addElement("lan:MD_CharacterSetCode");
                                            }
                                            root_6_0_14_0_1_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml#MD_CharacterSetCode");
                                            if (valueMap_tAFOX_2.get("mdCharacterSetCode") != null) {
                                                root_6_0_14_0_1_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("mdCharacterSetCode"));
                                            }
                                            root_6_0_14_0_1_0_tAFOX_2.setName("lan:MD_CharacterSetCode");
                                            org.dom4j.Element root_6_0_15_tAFOX_2;
                                            if (root_6_0_tAFOX_2.getNamespaceForPrefix("mri") == null) {
                                                root_6_0_15_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("supplementalInformation");
                                            } else {
                                                root_6_0_15_tAFOX_2 = root_6_0_tAFOX_2
                                                        .addElement("mri:supplementalInformation");
                                            }
                                            root_6_0_15_tAFOX_2.setName("mri:supplementalInformation");
                                            org.dom4j.Element root_6_0_15_0_tAFOX_2;
                                            if (root_6_0_15_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_6_0_15_0_tAFOX_2 = root_6_0_15_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_6_0_15_0_tAFOX_2 = root_6_0_15_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            root_6_0_15_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_7_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_7_tAFOX_2 = root_tAFOX_2.addElement("contentInfo");
                                            } else {
                                                root_7_tAFOX_2 = root_tAFOX_2.addElement("mdb:contentInfo");
                                            }
                                            root_7_tAFOX_2.setName("mdb:contentInfo");
                                            org.dom4j.Element root_7_0_tAFOX_2;
                                            if (root_7_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                                root_7_0_tAFOX_2 = root_7_tAFOX_2
                                                        .addElement("MD_CoverageDescription");
                                            } else {
                                                root_7_0_tAFOX_2 = root_7_tAFOX_2
                                                        .addElement("mrc:MD_CoverageDescription");
                                            }
                                            subTreeRootParent_tAFOX_2 = root_7_0_tAFOX_2;
                                            root_7_0_tAFOX_2.setName("mrc:MD_CoverageDescription");
                                            org.dom4j.Element root_7_0_0_tAFOX_2;
                                            if (root_7_0_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                                root_7_0_0_tAFOX_2 = root_7_0_tAFOX_2
                                                        .addElement("attributeDescription");
                                            } else {
                                                root_7_0_0_tAFOX_2 = root_7_0_tAFOX_2
                                                        .addElement("mrc:attributeDescription");
                                            }
                                            root_7_0_0_tAFOX_2.setName("mrc:attributeDescription");
                                            org.dom4j.Element root_7_0_0_0_tAFOX_2;
                                            if (root_7_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_7_0_0_0_tAFOX_2 = root_7_0_0_tAFOX_2.addElement("RecordType");
                                            } else {
                                                root_7_0_0_0_tAFOX_2 = root_7_0_0_tAFOX_2
                                                        .addElement("gco:RecordType");
                                            }
                                            nestXMLTool_tAFOX_2.parseAndAdd(root_7_0_0_0_tAFOX_2, "Raster bands");

                                            root_7_0_0_0_tAFOX_2.setName("gco:RecordType");
                                            org.dom4j.Element root_8_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_8_tAFOX_2 = root_tAFOX_2.addElement("distributionInfo");
                                            } else {
                                                root_8_tAFOX_2 = root_tAFOX_2.addElement("mdb:distributionInfo");
                                            }
                                            root_8_tAFOX_2.setName("mdb:distributionInfo");
                                            org.dom4j.Element root_8_0_tAFOX_2;
                                            if (root_8_tAFOX_2.getNamespaceForPrefix("mrd") == null) {
                                                root_8_0_tAFOX_2 = root_8_tAFOX_2.addElement("MD_Distribution");
                                            } else {
                                                root_8_0_tAFOX_2 = root_8_tAFOX_2.addElement("mrd:MD_Distribution");
                                            }
                                            root_8_0_tAFOX_2.setName("mrd:MD_Distribution");
                                            org.dom4j.Element root_8_0_0_tAFOX_2;
                                            if (root_8_0_tAFOX_2.getNamespaceForPrefix("mrd") == null) {
                                                root_8_0_0_tAFOX_2 = root_8_0_tAFOX_2.addElement("transferOptions");
                                            } else {
                                                root_8_0_0_tAFOX_2 = root_8_0_tAFOX_2
                                                        .addElement("mrd:transferOptions");
                                            }
                                            root_8_0_0_tAFOX_2.setName("mrd:transferOptions");
                                            org.dom4j.Element root_8_0_0_0_tAFOX_2;
                                            if (root_8_0_0_tAFOX_2.getNamespaceForPrefix("mrd") == null) {
                                                root_8_0_0_0_tAFOX_2 = root_8_0_0_tAFOX_2
                                                        .addElement("MD_DigitalTransferOptions");
                                            } else {
                                                root_8_0_0_0_tAFOX_2 = root_8_0_0_tAFOX_2
                                                        .addElement("mrd:MD_DigitalTransferOptions");
                                            }
                                            root_8_0_0_0_tAFOX_2.setName("mrd:MD_DigitalTransferOptions");
                                            org.dom4j.Element root_9_tAFOX_2;
                                            if (root_tAFOX_2.getNamespaceForPrefix("mdb") == null) {
                                                root_9_tAFOX_2 = root_tAFOX_2.addElement("resourceLineage");
                                            } else {
                                                root_9_tAFOX_2 = root_tAFOX_2.addElement("mdb:resourceLineage");
                                            }
                                            root_9_tAFOX_2.setName("mdb:resourceLineage");
                                            org.dom4j.Element root_9_0_tAFOX_2;
                                            if (root_9_tAFOX_2.getNamespaceForPrefix("mrl") == null) {
                                                root_9_0_tAFOX_2 = root_9_tAFOX_2.addElement("LI_Lineage");
                                            } else {
                                                root_9_0_tAFOX_2 = root_9_tAFOX_2.addElement("mrl:LI_Lineage");
                                            }
                                            root_9_0_tAFOX_2.setName("mrl:LI_Lineage");
                                            org.dom4j.Element root_9_0_0_tAFOX_2;
                                            if (root_9_0_tAFOX_2.getNamespaceForPrefix("mrl") == null) {
                                                root_9_0_0_tAFOX_2 = root_9_0_tAFOX_2.addElement("statement");
                                            } else {
                                                root_9_0_0_tAFOX_2 = root_9_0_tAFOX_2.addElement("mrl:statement");
                                            }
                                            root_9_0_0_tAFOX_2.addAttribute("gco:nilReason", "missing");
                                            root_9_0_0_tAFOX_2.setName("mrl:statement");
                                            org.dom4j.Element root_9_0_0_0_tAFOX_2;
                                            if (root_9_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                root_9_0_0_0_tAFOX_2 = root_9_0_0_tAFOX_2
                                                        .addElement("CharacterString");
                                            } else {
                                                root_9_0_0_0_tAFOX_2 = root_9_0_0_tAFOX_2
                                                        .addElement("gco:CharacterString");
                                            }
                                            if (valueMap_tAFOX_2.get("lineage") != null) {
                                                nestXMLTool_tAFOX_2.setText(root_9_0_0_0_tAFOX_2,
                                                        valueMap_tAFOX_2.get("lineage"));
                                            }
                                            root_9_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                            org.dom4j.Element root_9_0_1_tAFOX_2;
                                            if (root_9_0_tAFOX_2.getNamespaceForPrefix("mrl") == null) {
                                                root_9_0_1_tAFOX_2 = root_9_0_tAFOX_2.addElement("scope");
                                            } else {
                                                root_9_0_1_tAFOX_2 = root_9_0_tAFOX_2.addElement("mrl:scope");
                                            }
                                            root_9_0_1_tAFOX_2.setName("mrl:scope");
                                            org.dom4j.Element root_9_0_1_0_tAFOX_2;
                                            if (root_9_0_1_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_9_0_1_0_tAFOX_2 = root_9_0_1_tAFOX_2.addElement("MD_Scope");
                                            } else {
                                                root_9_0_1_0_tAFOX_2 = root_9_0_1_tAFOX_2
                                                        .addElement("mcc:MD_Scope");
                                            }
                                            root_9_0_1_0_tAFOX_2.setName("mcc:MD_Scope");
                                            org.dom4j.Element root_9_0_1_0_0_tAFOX_2;
                                            if (root_9_0_1_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_9_0_1_0_0_tAFOX_2 = root_9_0_1_0_tAFOX_2.addElement("level");
                                            } else {
                                                root_9_0_1_0_0_tAFOX_2 = root_9_0_1_0_tAFOX_2
                                                        .addElement("mcc:level");
                                            }
                                            root_9_0_1_0_0_tAFOX_2.setName("mcc:level");
                                            org.dom4j.Element root_9_0_1_0_0_0_tAFOX_2;
                                            if (root_9_0_1_0_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                                root_9_0_1_0_0_0_tAFOX_2 = root_9_0_1_0_0_tAFOX_2
                                                        .addElement("MD_ScopeCode");
                                            } else {
                                                root_9_0_1_0_0_0_tAFOX_2 = root_9_0_1_0_0_tAFOX_2
                                                        .addElement("mcc:MD_ScopeCode");
                                            }
                                            root_9_0_1_0_0_0_tAFOX_2.addAttribute("codeList",
                                                    "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/ML_gmxCodelists.xml#MD_ScopeCode");
                                            if (valueMap_tAFOX_2.get("scopeCode") != null) {
                                                root_9_0_1_0_0_0_tAFOX_2.addAttribute("codeListValue",
                                                        valueMap_tAFOX_2.get("scopeCode"));
                                            }
                                            root_9_0_1_0_0_0_tAFOX_2.setName("mcc:MD_ScopeCode");
                                            root4Group_tAFOX_2 = subTreeRootParent_tAFOX_2;
                                        } else {
                                            subTreeRootParent_tAFOX_2 = root4Group_tAFOX_2;
                                        }
                                        // build group xml tree
                                        // build loop xml tree
                                        org.dom4j.Element loop_tAFOX_2;
                                        if (subTreeRootParent_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                            loop_tAFOX_2 = org.dom4j.DocumentHelper.createElement("attributeGroup");
                                        } else {
                                            loop_tAFOX_2 = org.dom4j.DocumentHelper
                                                    .createElement("mrc:attributeGroup");
                                        }
                                        if (orders_tAFOX_2[0] == 0) {
                                            orders_tAFOX_2[0] = 1;
                                        }
                                        if (1 < orders_tAFOX_2.length) {
                                            orders_tAFOX_2[1] = 0;
                                        }
                                        subTreeRootParent_tAFOX_2.elements().add(orders_tAFOX_2[0]++, loop_tAFOX_2);
                                        loop_tAFOX_2.setName("mrc:attributeGroup");
                                        org.dom4j.Element loop_0_tAFOX_2;
                                        if (loop_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                            loop_0_tAFOX_2 = loop_tAFOX_2.addElement("MD_AttributeGroup");
                                        } else {
                                            loop_0_tAFOX_2 = loop_tAFOX_2.addElement("mrc:MD_AttributeGroup");
                                        }
                                        loop_0_tAFOX_2.setName("mrc:MD_AttributeGroup");
                                        org.dom4j.Element loop_0_0_tAFOX_2;
                                        if (loop_0_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                            loop_0_0_tAFOX_2 = loop_0_tAFOX_2.addElement("contentType");
                                        } else {
                                            loop_0_0_tAFOX_2 = loop_0_tAFOX_2.addElement("mrc:contentType");
                                        }
                                        loop_0_0_tAFOX_2.setName("mrc:contentType");
                                        org.dom4j.Element loop_0_0_0_tAFOX_2;
                                        if (loop_0_0_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                            loop_0_0_0_tAFOX_2 = loop_0_0_tAFOX_2
                                                    .addElement("MD_CoverageContentTypeCode");
                                        } else {
                                            loop_0_0_0_tAFOX_2 = loop_0_0_tAFOX_2
                                                    .addElement("mrc:MD_CoverageContentTypeCode");
                                        }
                                        loop_0_0_0_tAFOX_2.addAttribute("codeList",
                                                "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/ML_gmxCodelists.xml#MD_CoverageContentTypeCode");
                                        loop_0_0_0_tAFOX_2.addAttribute("codeListValue", "image");
                                        loop_0_0_0_tAFOX_2.setName("mrc:MD_CoverageContentTypeCode");
                                        org.dom4j.Element loop_0_1_tAFOX_2;
                                        if (loop_0_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                            loop_0_1_tAFOX_2 = loop_0_tAFOX_2.addElement("attribute");
                                        } else {
                                            loop_0_1_tAFOX_2 = loop_0_tAFOX_2.addElement("mrc:attribute");
                                        }
                                        loop_0_1_tAFOX_2.setName("mrc:attribute");
                                        org.dom4j.Element loop_0_1_0_tAFOX_2;
                                        if (loop_0_1_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                            loop_0_1_0_tAFOX_2 = loop_0_1_tAFOX_2.addElement("MD_Band");
                                        } else {
                                            loop_0_1_0_tAFOX_2 = loop_0_1_tAFOX_2.addElement("mrc:MD_Band");
                                        }
                                        loop_0_1_0_tAFOX_2.setName("mrc:MD_Band");
                                        org.dom4j.Element loop_0_1_0_0_tAFOX_2;
                                        if (loop_0_1_0_tAFOX_2.getNamespaceForPrefix("mrc") == null) {
                                            loop_0_1_0_0_tAFOX_2 = loop_0_1_0_tAFOX_2.addElement("name");
                                        } else {
                                            loop_0_1_0_0_tAFOX_2 = loop_0_1_0_tAFOX_2.addElement("mrc:name");
                                        }
                                        loop_0_1_0_0_tAFOX_2.setName("mrc:name");
                                        org.dom4j.Element loop_0_1_0_0_0_tAFOX_2;
                                        if (loop_0_1_0_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                            loop_0_1_0_0_0_tAFOX_2 = loop_0_1_0_0_tAFOX_2
                                                    .addElement("MD_Identifier");
                                        } else {
                                            loop_0_1_0_0_0_tAFOX_2 = loop_0_1_0_0_tAFOX_2
                                                    .addElement("mcc:MD_Identifier");
                                        }
                                        loop_0_1_0_0_0_tAFOX_2.setName("mcc:MD_Identifier");
                                        org.dom4j.Element loop_0_1_0_0_0_0_tAFOX_2;
                                        if (loop_0_1_0_0_0_tAFOX_2.getNamespaceForPrefix("mcc") == null) {
                                            loop_0_1_0_0_0_0_tAFOX_2 = loop_0_1_0_0_0_tAFOX_2.addElement("code");
                                        } else {
                                            loop_0_1_0_0_0_0_tAFOX_2 = loop_0_1_0_0_0_tAFOX_2
                                                    .addElement("mcc:code");
                                        }
                                        loop_0_1_0_0_0_0_tAFOX_2.setName("mcc:code");
                                        org.dom4j.Element loop_0_1_0_0_0_0_0_tAFOX_2;
                                        if (loop_0_1_0_0_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                            loop_0_1_0_0_0_0_0_tAFOX_2 = loop_0_1_0_0_0_0_tAFOX_2
                                                    .addElement("CharacterString");
                                        } else {
                                            loop_0_1_0_0_0_0_0_tAFOX_2 = loop_0_1_0_0_0_0_tAFOX_2
                                                    .addElement("gco:CharacterString");
                                        }
                                        if (valueMap_tAFOX_2.get("bandName") != null) {
                                            nestXMLTool_tAFOX_2.setText(loop_0_1_0_0_0_0_0_tAFOX_2,
                                                    valueMap_tAFOX_2.get("bandName"));
                                        }
                                        loop_0_1_0_0_0_0_0_tAFOX_2.setName("gco:CharacterString");

                                        tos_count_tAdvancedFileOutputXML_2++;

                                        /**
                                         * [tAdvancedFileOutputXML_2 main ] stop
                                         */

                                    } // End of branch "row1"

                                } // C_01

                                // end for
                            }

                        } // End of branch "iso19115"

                    } // close loop of lookup 'properties' // G_TM_M_043

                    /**
                     * [sGdalInfoInput_2 end ] start
                     */

                    currentComponent = "sGdalInfoInput_2";

                    // Delete current GDAL dataset
                    dataset_sGdalInfoInput_2.delete();
                }
                // Optional
                org.gdal.gdal.gdal.GDALDestroyDriverManager();

                globalMap.put("sGdalInfoInput_2_NB_LINE", nb_line_sGdalInfoInput_2);
                globalMap.put("sGdalInfoInput_2_NB_ERRORS", nbErrors_sGdalInfoInput_2);
                globalMap.put("sGdalInfoInput_2_ERRORS", errors_sGdalInfoInput_2);

                ok_Hash.put("sGdalInfoInput_2", true);
                end_Hash.put("sGdalInfoInput_2", System.currentTimeMillis());

                if (((Integer) globalMap.get("sGdalInfoInput_2_NB_ERRORS")) > 0) {

                    tWarn_1Process(globalMap);
                }

                if (((Integer) globalMap.get("sGdalInfoInput_2_NB_ERRORS")) > 0) {

                    tDie_1Process(globalMap);
                }

                /**
                 * [sGdalInfoInput_2 end ] stop
                 */

                /**
                 * [tMap_1 end ] start
                 */

                currentComponent = "tMap_1";

                // ###############################
                // # Lookup hashes releasing
                if (tHash_Lookup_properties != null) {
                    tHash_Lookup_properties.endGet();
                }
                globalMap.remove("tHash_Lookup_properties");

                // ###############################

                ok_Hash.put("tMap_1", true);
                end_Hash.put("tMap_1", System.currentTimeMillis());

                /**
                 * [tMap_1 end ] stop
                 */

                /**
                 * [tNormalize_2 end ] start
                 */

                currentComponent = "tNormalize_2";

                globalMap.put("tNormalize_2_NB_LINE", nb_line_tNormalize_2);

                ok_Hash.put("tNormalize_2", true);
                end_Hash.put("tNormalize_2", System.currentTimeMillis());

                /**
                 * [tNormalize_2 end ] stop
                 */

                /**
                 * [tExtractDelimitedFields_1 end ] start
                 */

                currentComponent = "tExtractDelimitedFields_1";

                globalMap.put("tExtractDelimitedFields_1_NB_LINE", nb_line_tExtractDelimitedFields_1);

                ok_Hash.put("tExtractDelimitedFields_1", true);
                end_Hash.put("tExtractDelimitedFields_1", System.currentTimeMillis());

                /**
                 * [tExtractDelimitedFields_1 end ] stop
                 */

                /**
                 * [tLogRow_2 end ] start
                 */

                currentComponent = "tLogRow_2";

                ok_Hash.put("tLogRow_2", true);
                end_Hash.put("tLogRow_2", System.currentTimeMillis());

                /**
                 * [tLogRow_2 end ] stop
                 */

                /**
                 * [tAdvancedFileOutputXML_2 end ] start
                 */

                currentComponent = "tAdvancedFileOutputXML_2";

                java.io.FileOutputStream stream_tAFOX_2 = new java.io.FileOutputStream(fileName_tAFOX_2);
                org.dom4j.io.XMLWriter output_tAFOX_2 = new org.dom4j.io.XMLWriter(stream_tAFOX_2, format_tAFOX_2);
                if (doc_tAFOX_2.getRootElement() != null) {
                    nestXMLTool_tAFOX_2.replaceDefaultNameSpace(doc_tAFOX_2.getRootElement());
                    output_tAFOX_2.write(doc_tAFOX_2);
                }
                output_tAFOX_2.close();
                globalMap.put("tAdvancedFileOutputXML_2_NB_LINE", nb_line_tAFOX_2);

                ok_Hash.put("tAdvancedFileOutputXML_2", true);
                end_Hash.put("tAdvancedFileOutputXML_2", System.currentTimeMillis());

                /**
                 * [tAdvancedFileOutputXML_2 end ] stop
                 */

            } // end the resume

        } catch (java.lang.Exception e) {

            TalendException te = new TalendException(e, currentComponent, globalMap);

            throw te;
        } catch (java.lang.Error error) {

            throw error;
        } finally {

            // free memory for "tMap_1"
            globalMap.remove("tHash_Lookup_properties");

            try {

                /**
                 * [sGdalInfoInput_2 finally ] start
                 */

                currentComponent = "sGdalInfoInput_2";

                /**
                 * [sGdalInfoInput_2 finally ] stop
                 */

                /**
                 * [tMap_1 finally ] start
                 */

                currentComponent = "tMap_1";

                /**
                 * [tMap_1 finally ] stop
                 */

                /**
                 * [tNormalize_2 finally ] start
                 */

                currentComponent = "tNormalize_2";

                /**
                 * [tNormalize_2 finally ] stop
                 */

                /**
                 * [tExtractDelimitedFields_1 finally ] start
                 */

                currentComponent = "tExtractDelimitedFields_1";

                /**
                 * [tExtractDelimitedFields_1 finally ] stop
                 */

                /**
                 * [tLogRow_2 finally ] start
                 */

                currentComponent = "tLogRow_2";

                /**
                 * [tLogRow_2 finally ] stop
                 */

                /**
                 * [tAdvancedFileOutputXML_2 finally ] start
                 */

                currentComponent = "tAdvancedFileOutputXML_2";

                /**
                 * [tAdvancedFileOutputXML_2 finally ] stop
                 */

            } catch (java.lang.Exception e) {
                // ignore
            } catch (java.lang.Error error) {
                // ignore
            }
            resourceMap = null;
        }

        globalMap.put("sGdalInfoInput_2_SUBPROCESS_STATE", 1);
    }

    public void tWarn_1Process(final java.util.Map<String, Object> globalMap) throws TalendException {
        globalMap.put("tWarn_1_SUBPROCESS_STATE", 0);

        final boolean execStat = this.execStat;

        String iterateId = "";

        String currentComponent = "";
        java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();

        try {

            String currentMethodName = new java.lang.Exception().getStackTrace()[0].getMethodName();
            boolean resumeIt = currentMethodName.equals(resumeEntryMethodName);
            if (resumeEntryMethodName == null || resumeIt || globalResumeTicket) {// start
                // the
                // resume
                globalResumeTicket = true;

                /**
                 * [tWarn_1 begin ] start
                 */

                ok_Hash.put("tWarn_1", false);
                start_Hash.put("tWarn_1", System.currentTimeMillis());

                currentComponent = "tWarn_1";

                int tos_count_tWarn_1 = 0;

                /**
                 * [tWarn_1 begin ] stop
                 */

                /**
                 * [tWarn_1 main ] start
                 */

                currentComponent = "tWarn_1";

                resumeUtil.addLog("USER_DEF_LOG", "NODE:tWarn_1", "", Thread.currentThread().getId() + "", "ERROR",
                        "", ((String) globalMap.get("sGdalInfoInput_1_ERROR_MESSAGE")), "", "");
                globalMap.put("tWarn_1_WARN_MESSAGES", ((String) globalMap.get("sGdalInfoInput_1_ERROR_MESSAGE")));
                globalMap.put("tWarn_1_WARN_PRIORITY", 5);
                globalMap.put("tWarn_1_WARN_CODE", 2);

                tos_count_tWarn_1++;

                /**
                 * [tWarn_1 main ] stop
                 */

                /**
                 * [tWarn_1 end ] start
                 */

                currentComponent = "tWarn_1";

                ok_Hash.put("tWarn_1", true);
                end_Hash.put("tWarn_1", System.currentTimeMillis());

                /**
                 * [tWarn_1 end ] stop
                 */
            } // end the resume

        } catch (java.lang.Exception e) {

            TalendException te = new TalendException(e, currentComponent, globalMap);

            throw te;
        } catch (java.lang.Error error) {

            throw error;
        } finally {

            try {

                /**
                 * [tWarn_1 finally ] start
                 */

                currentComponent = "tWarn_1";

                /**
                 * [tWarn_1 finally ] stop
                 */
            } catch (java.lang.Exception e) {
                // ignore
            } catch (java.lang.Error error) {
                // ignore
            }
            resourceMap = null;
        }

        globalMap.put("tWarn_1_SUBPROCESS_STATE", 1);
    }

    public void tWarn_2Process(final java.util.Map<String, Object> globalMap) throws TalendException {
        globalMap.put("tWarn_2_SUBPROCESS_STATE", 0);

        final boolean execStat = this.execStat;

        String iterateId = "";

        String currentComponent = "";
        java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();

        try {

            String currentMethodName = new java.lang.Exception().getStackTrace()[0].getMethodName();
            boolean resumeIt = currentMethodName.equals(resumeEntryMethodName);
            if (resumeEntryMethodName == null || resumeIt || globalResumeTicket) {// start
                // the
                // resume
                globalResumeTicket = true;

                /**
                 * [tWarn_2 begin ] start
                 */

                ok_Hash.put("tWarn_2", false);
                start_Hash.put("tWarn_2", System.currentTimeMillis());

                currentComponent = "tWarn_2";

                int tos_count_tWarn_2 = 0;

                /**
                 * [tWarn_2 begin ] stop
                 */

                /**
                 * [tWarn_2 main ] start
                 */

                currentComponent = "tWarn_2";

                resumeUtil.addLog("USER_DEF_LOG", "NODE:tWarn_2", "", Thread.currentThread().getId() + "", "WARN",
                        "", "error scanning or generating Raster metadata for file " + context.file, "", "");
                globalMap.put("tWarn_2_WARN_MESSAGES",
                        "error scanning or generating Raster metadata for file " + context.file);
                globalMap.put("tWarn_2_WARN_PRIORITY", 4);
                globalMap.put("tWarn_2_WARN_CODE", 42);

                tos_count_tWarn_2++;

                /**
                 * [tWarn_2 main ] stop
                 */

                /**
                 * [tWarn_2 end ] start
                 */

                currentComponent = "tWarn_2";

                ok_Hash.put("tWarn_2", true);
                end_Hash.put("tWarn_2", System.currentTimeMillis());

                /**
                 * [tWarn_2 end ] stop
                 */
            } // end the resume

        } catch (java.lang.Exception e) {

            TalendException te = new TalendException(e, currentComponent, globalMap);

            throw te;
        } catch (java.lang.Error error) {

            throw error;
        } finally {

            try {

                /**
                 * [tWarn_2 finally ] start
                 */

                currentComponent = "tWarn_2";

                /**
                 * [tWarn_2 finally ] stop
                 */
            } catch (java.lang.Exception e) {
                // ignore
            } catch (java.lang.Error error) {
                // ignore
            }
            resourceMap = null;
        }

        globalMap.put("tWarn_2_SUBPROCESS_STATE", 1);
    }

    public void tDie_1Process(final java.util.Map<String, Object> globalMap) throws TalendException {
        globalMap.put("tDie_1_SUBPROCESS_STATE", 0);

        final boolean execStat = this.execStat;

        String iterateId = "";

        String currentComponent = "";
        java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();

        try {

            String currentMethodName = new java.lang.Exception().getStackTrace()[0].getMethodName();
            boolean resumeIt = currentMethodName.equals(resumeEntryMethodName);
            if (resumeEntryMethodName == null || resumeIt || globalResumeTicket) {// start
                // the
                // resume
                globalResumeTicket = true;

                /**
                 * [tDie_1 begin ] start
                 */

                ok_Hash.put("tDie_1", false);
                start_Hash.put("tDie_1", System.currentTimeMillis());

                currentComponent = "tDie_1";

                int tos_count_tDie_1 = 0;

                /**
                 * [tDie_1 begin ] stop
                 */

                /**
                 * [tDie_1 main ] start
                 */

                currentComponent = "tDie_1";

                globalMap.put("tDie_1_DIE_PRIORITY", 5);
                System.err.println("File " + context.file + " not supported by GDAL library");

                globalMap.put("tDie_1_DIE_MESSAGE", "File " + context.file + " not supported by GDAL library");
                globalMap.put("tDie_1_DIE_MESSAGES", "File " + context.file + " not supported by GDAL library");
                currentComponent = "tDie_1";
                status = "failure";
                errorCode = new Integer(4);
                globalMap.put("tDie_1_DIE_CODE", errorCode);

                if (true) {
                    throw new TDieException();
                }

                tos_count_tDie_1++;

                /**
                 * [tDie_1 main ] stop
                 */

                /**
                 * [tDie_1 end ] start
                 */

                currentComponent = "tDie_1";

                ok_Hash.put("tDie_1", true);
                end_Hash.put("tDie_1", System.currentTimeMillis());

                /**
                 * [tDie_1 end ] stop
                 */
            } // end the resume

        } catch (java.lang.Exception e) {

            TalendException te = new TalendException(e, currentComponent, globalMap);

            throw te;
        } catch (java.lang.Error error) {

            throw error;
        } finally {

            try {

                /**
                 * [tDie_1 finally ] start
                 */

                currentComponent = "tDie_1";

                /**
                 * [tDie_1 finally ] stop
                 */
            } catch (java.lang.Exception e) {
                // ignore
            } catch (java.lang.Error error) {
                // ignore
            }
            resourceMap = null;
        }

        globalMap.put("tDie_1_SUBPROCESS_STATE", 1);
    }

    public static class propertiesStruct implements routines.system.IPersistableRow<propertiesStruct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_RasterJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_RasterJob = new byte[0];

        public String dataType;

        public String getDataType() {
            return this.dataType;
        }

        public String mdIndividualName;

        public String getMdIndividualName() {
            return this.mdIndividualName;
        }

        public String mdOrganisationName;

        public String getMdOrganisationName() {
            return this.mdOrganisationName;
        }

        public String mdPositionName;

        public String getMdPositionName() {
            return this.mdPositionName;
        }

        public String mdVoice;

        public String getMdVoice() {
            return this.mdVoice;
        }

        public String mdDeliveryPoint;

        public String getMdDeliveryPoint() {
            return this.mdDeliveryPoint;
        }

        public String mdCity;

        public String getMdCity() {
            return this.mdCity;
        }

        public String mdAdministrativeArea;

        public String getMdAdministrativeArea() {
            return this.mdAdministrativeArea;
        }

        public String mdPostalCode;

        public String getMdPostalCode() {
            return this.mdPostalCode;
        }

        public String mdCountry;

        public String getMdCountry() {
            return this.mdCountry;
        }

        public String mdEmail;

        public String getMdEmail() {
            return this.mdEmail;
        }

        public String mdRole;

        public String getMdRole() {
            return this.mdRole;
        }

        public String individualName;

        public String getIndividualName() {
            return this.individualName;
        }

        public String organisationName;

        public String getOrganisationName() {
            return this.organisationName;
        }

        public String positionName;

        public String getPositionName() {
            return this.positionName;
        }

        public String voice;

        public String getVoice() {
            return this.voice;
        }

        public String deliveryPoint;

        public String getDeliveryPoint() {
            return this.deliveryPoint;
        }

        public String city;

        public String getCity() {
            return this.city;
        }

        public String adminArea;

        public String getAdminArea() {
            return this.adminArea;
        }

        public String postalCode;

        public String getPostalCode() {
            return this.postalCode;
        }

        public String country;

        public String getCountry() {
            return this.country;
        }

        public String email;

        public String getEmail() {
            return this.email;
        }

        public String role;

        public String getRole() {
            return this.role;
        }

        public String overviewUrlPrefix;

        public String getOverviewUrlPrefix() {
            return this.overviewUrlPrefix;
        }

        public String keyword;

        public String getKeyword() {
            return this.keyword;
        }

        public String keyword2;

        public String getKeyword2() {
            return this.keyword2;
        }

        public String geokeyword;

        public String getGeokeyword() {
            return this.geokeyword;
        }

        public String accessConstraints;

        public String getAccessConstraints() {
            return this.accessConstraints;
        }

        public String useConstraints;

        public String getUseConstraints() {
            return this.useConstraints;
        }

        public String useConstraintsInfo;

        public String getUseConstraintsInfo() {
            return this.useConstraintsInfo;
        }

        public String useLimitation;

        public String getUseLimitation() {
            return this.useLimitation;
        }

        public String scaleDenominator;

        public String getScaleDenominator() {
            return this.scaleDenominator;
        }

        public String language;

        public String getLanguage() {
            return this.language;
        }

        public String charset;

        public String getCharset() {
            return this.charset;
        }

        public String topicCategoryCode;

        public String getTopicCategoryCode() {
            return this.topicCategoryCode;
        }

        public String linkage1URL;

        public String getLinkage1URL() {
            return this.linkage1URL;
        }

        public String linkage1protocol;

        public String getLinkage1protocol() {
            return this.linkage1protocol;
        }

        public String linkage1name;

        public String getLinkage1name() {
            return this.linkage1name;
        }

        public String linkage1description;

        public String getLinkage1description() {
            return this.linkage1description;
        }

        public String lanFileDesc;

        public String getLanFileDesc() {
            return this.lanFileDesc;
        }

        public String lanFileProtocol;

        public String getLanFileProtocol() {
            return this.lanFileProtocol;
        }

        public String wmsUrl;

        public String getWmsUrl() {
            return this.wmsUrl;
        }

        public String wmsProtocol;

        public String getWmsProtocol() {
            return this.wmsProtocol;
        }

        public String wmsDesc;

        public String getWmsDesc() {
            return this.wmsDesc;
        }

        public String mapFormat;

        public String getMapFormat() {
            return this.mapFormat;
        }

        private String readString(ObjectInputStream dis) throws IOException {
            String strReturn = null;
            int length = 0;
            length = dis.readInt();
            if (length == -1) {
                strReturn = null;
            } else {
                if (length > commonByteArray_METADATA_GENERATOR_RasterJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_RasterJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_RasterJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_RasterJob, 0, length, utf8Charset);
            }
            return strReturn;
        }

        private void writeString(String str, ObjectOutputStream dos) throws IOException {
            if (str == null) {
                dos.writeInt(-1);
            } else {
                byte[] byteArray = str.getBytes(utf8Charset);
                dos.writeInt(byteArray.length);
                dos.write(byteArray);
            }
        }

        public void readData(ObjectInputStream dis) {

            synchronized (commonByteArrayLock_METADATA_GENERATOR_RasterJob) {

                try {

                    int length = 0;

                    this.dataType = readString(dis);

                    this.mdIndividualName = readString(dis);

                    this.mdOrganisationName = readString(dis);

                    this.mdPositionName = readString(dis);

                    this.mdVoice = readString(dis);

                    this.mdDeliveryPoint = readString(dis);

                    this.mdCity = readString(dis);

                    this.mdAdministrativeArea = readString(dis);

                    this.mdPostalCode = readString(dis);

                    this.mdCountry = readString(dis);

                    this.mdEmail = readString(dis);

                    this.mdRole = readString(dis);

                    this.individualName = readString(dis);

                    this.organisationName = readString(dis);

                    this.positionName = readString(dis);

                    this.voice = readString(dis);

                    this.deliveryPoint = readString(dis);

                    this.city = readString(dis);

                    this.adminArea = readString(dis);

                    this.postalCode = readString(dis);

                    this.country = readString(dis);

                    this.email = readString(dis);

                    this.role = readString(dis);

                    this.overviewUrlPrefix = readString(dis);

                    this.keyword = readString(dis);

                    this.keyword2 = readString(dis);

                    this.geokeyword = readString(dis);

                    this.accessConstraints = readString(dis);

                    this.useConstraints = readString(dis);

                    this.useConstraintsInfo = readString(dis);

                    this.useLimitation = readString(dis);

                    this.scaleDenominator = readString(dis);

                    this.language = readString(dis);

                    this.charset = readString(dis);

                    this.topicCategoryCode = readString(dis);

                    this.linkage1URL = readString(dis);

                    this.linkage1protocol = readString(dis);

                    this.linkage1name = readString(dis);

                    this.linkage1description = readString(dis);

                    this.lanFileDesc = readString(dis);

                    this.lanFileProtocol = readString(dis);

                    this.wmsUrl = readString(dis);

                    this.wmsProtocol = readString(dis);

                    this.wmsDesc = readString(dis);

                    this.mapFormat = readString(dis);

                } catch (IOException e) {
                    throw new RuntimeException(e);

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.dataType, dos);

                // String

                writeString(this.mdIndividualName, dos);

                // String

                writeString(this.mdOrganisationName, dos);

                // String

                writeString(this.mdPositionName, dos);

                // String

                writeString(this.mdVoice, dos);

                // String

                writeString(this.mdDeliveryPoint, dos);

                // String

                writeString(this.mdCity, dos);

                // String

                writeString(this.mdAdministrativeArea, dos);

                // String

                writeString(this.mdPostalCode, dos);

                // String

                writeString(this.mdCountry, dos);

                // String

                writeString(this.mdEmail, dos);

                // String

                writeString(this.mdRole, dos);

                // String

                writeString(this.individualName, dos);

                // String

                writeString(this.organisationName, dos);

                // String

                writeString(this.positionName, dos);

                // String

                writeString(this.voice, dos);

                // String

                writeString(this.deliveryPoint, dos);

                // String

                writeString(this.city, dos);

                // String

                writeString(this.adminArea, dos);

                // String

                writeString(this.postalCode, dos);

                // String

                writeString(this.country, dos);

                // String

                writeString(this.email, dos);

                // String

                writeString(this.role, dos);

                // String

                writeString(this.overviewUrlPrefix, dos);

                // String

                writeString(this.keyword, dos);

                // String

                writeString(this.keyword2, dos);

                // String

                writeString(this.geokeyword, dos);

                // String

                writeString(this.accessConstraints, dos);

                // String

                writeString(this.useConstraints, dos);

                // String

                writeString(this.useConstraintsInfo, dos);

                // String

                writeString(this.useLimitation, dos);

                // String

                writeString(this.scaleDenominator, dos);

                // String

                writeString(this.language, dos);

                // String

                writeString(this.charset, dos);

                // String

                writeString(this.topicCategoryCode, dos);

                // String

                writeString(this.linkage1URL, dos);

                // String

                writeString(this.linkage1protocol, dos);

                // String

                writeString(this.linkage1name, dos);

                // String

                writeString(this.linkage1description, dos);

                // String

                writeString(this.lanFileDesc, dos);

                // String

                writeString(this.lanFileProtocol, dos);

                // String

                writeString(this.wmsUrl, dos);

                // String

                writeString(this.wmsProtocol, dos);

                // String

                writeString(this.wmsDesc, dos);

                // String

                writeString(this.mapFormat, dos);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("dataType=" + dataType);
            sb.append(",mdIndividualName=" + mdIndividualName);
            sb.append(",mdOrganisationName=" + mdOrganisationName);
            sb.append(",mdPositionName=" + mdPositionName);
            sb.append(",mdVoice=" + mdVoice);
            sb.append(",mdDeliveryPoint=" + mdDeliveryPoint);
            sb.append(",mdCity=" + mdCity);
            sb.append(",mdAdministrativeArea=" + mdAdministrativeArea);
            sb.append(",mdPostalCode=" + mdPostalCode);
            sb.append(",mdCountry=" + mdCountry);
            sb.append(",mdEmail=" + mdEmail);
            sb.append(",mdRole=" + mdRole);
            sb.append(",individualName=" + individualName);
            sb.append(",organisationName=" + organisationName);
            sb.append(",positionName=" + positionName);
            sb.append(",voice=" + voice);
            sb.append(",deliveryPoint=" + deliveryPoint);
            sb.append(",city=" + city);
            sb.append(",adminArea=" + adminArea);
            sb.append(",postalCode=" + postalCode);
            sb.append(",country=" + country);
            sb.append(",email=" + email);
            sb.append(",role=" + role);
            sb.append(",overviewUrlPrefix=" + overviewUrlPrefix);
            sb.append(",keyword=" + keyword);
            sb.append(",keyword2=" + keyword2);
            sb.append(",geokeyword=" + geokeyword);
            sb.append(",accessConstraints=" + accessConstraints);
            sb.append(",useConstraints=" + useConstraints);
            sb.append(",useConstraintsInfo=" + useConstraintsInfo);
            sb.append(",useLimitation=" + useLimitation);
            sb.append(",scaleDenominator=" + scaleDenominator);
            sb.append(",language=" + language);
            sb.append(",charset=" + charset);
            sb.append(",topicCategoryCode=" + topicCategoryCode);
            sb.append(",linkage1URL=" + linkage1URL);
            sb.append(",linkage1protocol=" + linkage1protocol);
            sb.append(",linkage1name=" + linkage1name);
            sb.append(",linkage1description=" + linkage1description);
            sb.append(",lanFileDesc=" + lanFileDesc);
            sb.append(",lanFileProtocol=" + lanFileProtocol);
            sb.append(",wmsUrl=" + wmsUrl);
            sb.append(",wmsProtocol=" + wmsProtocol);
            sb.append(",wmsDesc=" + wmsDesc);
            sb.append(",mapFormat=" + mapFormat);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(propertiesStruct other) {

            int returnValue = -1;

            return returnValue;
        }

        private int checkNullsAndCompare(Object object1, Object object2) {
            int returnValue = 0;
            if (object1 instanceof Comparable && object2 instanceof Comparable) {
                returnValue = ((Comparable) object1).compareTo(object2);
            } else if (object1 != null && object2 != null) {
                returnValue = compareStrings(object1.toString(), object2.toString());
            } else if (object1 == null && object2 != null) {
                returnValue = 1;
            } else if (object1 != null && object2 == null) {
                returnValue = -1;
            } else {
                returnValue = 0;
            }

            return returnValue;
        }

        private int compareStrings(String string1, String string2) {
            return string1.compareTo(string2);
        }

    }

    public void tFileInputDelimited_1Process(final java.util.Map<String, Object> globalMap) throws TalendException {
        globalMap.put("tFileInputDelimited_1_SUBPROCESS_STATE", 0);

        final boolean execStat = this.execStat;

        String iterateId = "";

        String currentComponent = "";
        java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();

        try {

            String currentMethodName = new java.lang.Exception().getStackTrace()[0].getMethodName();
            boolean resumeIt = currentMethodName.equals(resumeEntryMethodName);
            if (resumeEntryMethodName == null || resumeIt || globalResumeTicket) {// start
                // the
                // resume
                globalResumeTicket = true;

                propertiesStruct properties = new propertiesStruct();

                /**
                 * [tAdvancedHash_properties begin ] start
                 */

                ok_Hash.put("tAdvancedHash_properties", false);
                start_Hash.put("tAdvancedHash_properties", System.currentTimeMillis());

                currentComponent = "tAdvancedHash_properties";

                int tos_count_tAdvancedHash_properties = 0;

                // connection name:properties
                // source node:tFileInputDelimited_1 -
                // inputs:(after_sGdalInfoInput_2)
                // outputs:(properties,properties) | target
                // node:tAdvancedHash_properties - inputs:(properties)
                // outputs:()
                // linked node: tMap_1 - inputs:(fromActualFile,properties)
                // outputs:(iso19115)

                org.talend.designer.components.lookup.common.ICommonLookup.MATCHING_MODE matchingModeEnum_properties = org.talend.designer.components.lookup.common.ICommonLookup.MATCHING_MODE.ALL_ROWS;

                org.talend.designer.components.lookup.memory.AdvancedMemoryLookup<propertiesStruct> tHash_Lookup_properties = org.talend.designer.components.lookup.memory.AdvancedMemoryLookup
                        .<propertiesStruct>getLookup(matchingModeEnum_properties);

                globalMap.put("tHash_Lookup_properties", tHash_Lookup_properties);

                /**
                 * [tAdvancedHash_properties begin ] stop
                 */

                /**
                 * [tFileInputDelimited_1 begin ] start
                 */

                ok_Hash.put("tFileInputDelimited_1", false);
                start_Hash.put("tFileInputDelimited_1", System.currentTimeMillis());

                currentComponent = "tFileInputDelimited_1";

                int tos_count_tFileInputDelimited_1 = 0;

                int nb_line_tFileInputDelimited_1 = 0;
                org.talend.fileprocess.FileInputDelimited fid_tFileInputDelimited_1 = null;
                try {

                    Object filename_tFileInputDelimited_1 = context.resourceDir + "metadata-properties.csv";
                    if (filename_tFileInputDelimited_1 instanceof java.io.InputStream) {

                        int footer_value_tFileInputDelimited_1 = 0, random_value_tFileInputDelimited_1 = -1;
                        if (footer_value_tFileInputDelimited_1 > 0 || random_value_tFileInputDelimited_1 > 0) {
                            throw new java.lang.Exception(
                                    "When the input source is a stream,footer and random shouldn't be bigger than 0.");
                        }

                    }
                    try {
                        fid_tFileInputDelimited_1 = new org.talend.fileprocess.FileInputDelimited(
                                context.resourceDir + "metadata-properties.csv", "UTF-8", ";", "\n", false, 1, 0,
                                -1, -1, false);
                    } catch (java.lang.Exception e) {

                        System.err.println(e.getMessage());

                    }

                    while (fid_tFileInputDelimited_1 != null && fid_tFileInputDelimited_1.nextRecord()) {

                        properties = null;

                        properties = null;

                        boolean whetherReject_tFileInputDelimited_1 = false;
                        properties = new propertiesStruct();
                        try {

                            int columnIndexWithD_tFileInputDelimited_1 = 0;

                            columnIndexWithD_tFileInputDelimited_1 = 0;

                            properties.dataType = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 1;

                            properties.mdIndividualName = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 2;

                            properties.mdOrganisationName = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 3;

                            properties.mdPositionName = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 4;

                            properties.mdVoice = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 5;

                            properties.mdDeliveryPoint = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 6;

                            properties.mdCity = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 7;

                            properties.mdAdministrativeArea = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 8;

                            properties.mdPostalCode = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 9;

                            properties.mdCountry = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 10;

                            properties.mdEmail = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 11;

                            properties.mdRole = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 12;

                            properties.individualName = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 13;

                            properties.organisationName = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 14;

                            properties.positionName = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 15;

                            properties.voice = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 16;

                            properties.deliveryPoint = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 17;

                            properties.city = fid_tFileInputDelimited_1.get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 18;

                            properties.adminArea = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 19;

                            properties.postalCode = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 20;

                            properties.country = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 21;

                            properties.email = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 22;

                            properties.role = fid_tFileInputDelimited_1.get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 23;

                            properties.overviewUrlPrefix = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 24;

                            properties.keyword = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 25;

                            properties.keyword2 = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 26;

                            properties.geokeyword = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 27;

                            properties.accessConstraints = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 28;

                            properties.useConstraints = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 29;

                            properties.useConstraintsInfo = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 30;

                            properties.useLimitation = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 31;

                            properties.scaleDenominator = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 32;

                            properties.language = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 33;

                            properties.charset = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 34;

                            properties.topicCategoryCode = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 35;

                            properties.linkage1URL = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 36;

                            properties.linkage1protocol = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 37;

                            properties.linkage1name = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 38;

                            properties.linkage1description = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 39;

                            properties.lanFileDesc = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 40;

                            properties.lanFileProtocol = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 41;

                            properties.wmsUrl = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 42;

                            properties.wmsProtocol = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 43;

                            properties.wmsDesc = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 44;

                            properties.mapFormat = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                        } catch (java.lang.Exception e) {
                            whetherReject_tFileInputDelimited_1 = true;

                            System.err.println(e.getMessage());
                            properties = null;

                        }

                        /**
                         * [tFileInputDelimited_1 begin ] stop
                         */

                        /**
                         * [tFileInputDelimited_1 main ] start
                         */

                        currentComponent = "tFileInputDelimited_1";

                        tos_count_tFileInputDelimited_1++;

                        /**
                         * [tFileInputDelimited_1 main ] stop
                         */
                        // Start of branch "properties"
                        if (properties != null) {

                            /**
                             * [tAdvancedHash_properties main ] start
                             */

                            currentComponent = "tAdvancedHash_properties";

                            propertiesStruct properties_HashRow = new propertiesStruct();

                            properties_HashRow.dataType = properties.dataType;

                            properties_HashRow.mdIndividualName = properties.mdIndividualName;

                            properties_HashRow.mdOrganisationName = properties.mdOrganisationName;

                            properties_HashRow.mdPositionName = properties.mdPositionName;

                            properties_HashRow.mdVoice = properties.mdVoice;

                            properties_HashRow.mdDeliveryPoint = properties.mdDeliveryPoint;

                            properties_HashRow.mdCity = properties.mdCity;

                            properties_HashRow.mdAdministrativeArea = properties.mdAdministrativeArea;

                            properties_HashRow.mdPostalCode = properties.mdPostalCode;

                            properties_HashRow.mdCountry = properties.mdCountry;

                            properties_HashRow.mdEmail = properties.mdEmail;

                            properties_HashRow.mdRole = properties.mdRole;

                            properties_HashRow.individualName = properties.individualName;

                            properties_HashRow.organisationName = properties.organisationName;

                            properties_HashRow.positionName = properties.positionName;

                            properties_HashRow.voice = properties.voice;

                            properties_HashRow.deliveryPoint = properties.deliveryPoint;

                            properties_HashRow.city = properties.city;

                            properties_HashRow.adminArea = properties.adminArea;

                            properties_HashRow.postalCode = properties.postalCode;

                            properties_HashRow.country = properties.country;

                            properties_HashRow.email = properties.email;

                            properties_HashRow.role = properties.role;

                            properties_HashRow.overviewUrlPrefix = properties.overviewUrlPrefix;

                            properties_HashRow.keyword = properties.keyword;

                            properties_HashRow.keyword2 = properties.keyword2;

                            properties_HashRow.geokeyword = properties.geokeyword;

                            properties_HashRow.accessConstraints = properties.accessConstraints;

                            properties_HashRow.useConstraints = properties.useConstraints;

                            properties_HashRow.useConstraintsInfo = properties.useConstraintsInfo;

                            properties_HashRow.useLimitation = properties.useLimitation;

                            properties_HashRow.scaleDenominator = properties.scaleDenominator;

                            properties_HashRow.language = properties.language;

                            properties_HashRow.charset = properties.charset;

                            properties_HashRow.topicCategoryCode = properties.topicCategoryCode;

                            properties_HashRow.linkage1URL = properties.linkage1URL;

                            properties_HashRow.linkage1protocol = properties.linkage1protocol;

                            properties_HashRow.linkage1name = properties.linkage1name;

                            properties_HashRow.linkage1description = properties.linkage1description;

                            properties_HashRow.lanFileDesc = properties.lanFileDesc;

                            properties_HashRow.lanFileProtocol = properties.lanFileProtocol;

                            properties_HashRow.wmsUrl = properties.wmsUrl;

                            properties_HashRow.wmsProtocol = properties.wmsProtocol;

                            properties_HashRow.wmsDesc = properties.wmsDesc;

                            properties_HashRow.mapFormat = properties.mapFormat;

                            tHash_Lookup_properties.put(properties_HashRow);

                            tos_count_tAdvancedHash_properties++;

                            /**
                             * [tAdvancedHash_properties main ] stop
                             */

                        } // End of branch "properties"

                        /**
                         * [tFileInputDelimited_1 end ] start
                         */

                        currentComponent = "tFileInputDelimited_1";

                    }
                } finally {
                    if (!((Object) (context.resourceDir
                            + "metadata-properties.csv") instanceof java.io.InputStream)) {
                        if (fid_tFileInputDelimited_1 != null) {
                            fid_tFileInputDelimited_1.close();
                        }
                    }
                    if (fid_tFileInputDelimited_1 != null) {
                        globalMap.put("tFileInputDelimited_1_NB_LINE", fid_tFileInputDelimited_1.getRowNumber());

                    }
                }

                ok_Hash.put("tFileInputDelimited_1", true);
                end_Hash.put("tFileInputDelimited_1", System.currentTimeMillis());

                /**
                 * [tFileInputDelimited_1 end ] stop
                 */

                /**
                 * [tAdvancedHash_properties end ] start
                 */

                currentComponent = "tAdvancedHash_properties";

                tHash_Lookup_properties.endPut();

                ok_Hash.put("tAdvancedHash_properties", true);
                end_Hash.put("tAdvancedHash_properties", System.currentTimeMillis());

                /**
                 * [tAdvancedHash_properties end ] stop
                 */

            } // end the resume

        } catch (java.lang.Exception e) {

            TalendException te = new TalendException(e, currentComponent, globalMap);

            throw te;
        } catch (java.lang.Error error) {

            throw error;
        } finally {

            try {

                /**
                 * [tFileInputDelimited_1 finally ] start
                 */

                currentComponent = "tFileInputDelimited_1";

                /**
                 * [tFileInputDelimited_1 finally ] stop
                 */

                /**
                 * [tAdvancedHash_properties finally ] start
                 */

                currentComponent = "tAdvancedHash_properties";

                /**
                 * [tAdvancedHash_properties finally ] stop
                 */

            } catch (java.lang.Exception e) {
                // ignore
            } catch (java.lang.Error error) {
                // ignore
            }
            resourceMap = null;
        }

        globalMap.put("tFileInputDelimited_1_SUBPROCESS_STATE", 1);
    }

    public String resuming_logs_dir_path = null;
    public String resuming_checkpoint_path = null;
    public String parent_part_launcher = null;
    private String resumeEntryMethodName = null;
    private boolean globalResumeTicket = false;

    public boolean watch = false;
    // portStats is null, it means don't execute the statistics
    public Integer portStats = null;
    public int portTraces = 4334;
    public String clientHost;
    public String defaultClientHost = "localhost";
    public String contextStr = "Default";
    public boolean isDefaultContext = true;
    public String pid = "0";
    public String rootPid = null;
    public String fatherPid = null;
    public String fatherNode = null;
    public long startTime = 0;
    public boolean isChildJob = false;
    public String log4jLevel = "";

    private boolean execStat = true;

    private ThreadLocal<java.util.Map<String, String>> threadLocal = new ThreadLocal<java.util.Map<String, String>>() {
        protected java.util.Map<String, String> initialValue() {
            java.util.Map<String, String> threadRunResultMap = new java.util.HashMap<String, String>();
            threadRunResultMap.put("errorCode", null);
            threadRunResultMap.put("status", "");
            return threadRunResultMap;
        };
    };

    private java.util.Properties context_param = new java.util.Properties();
    public java.util.Map<String, Object> parentContextMap = new java.util.HashMap<String, Object>();

    public String status = "";

    public static void main(String[] args) {
        final RasterJob RasterJobClass = new RasterJob();

        int exitCode = RasterJobClass.runJobInTOS(args);

        System.exit(exitCode);
    }

    public String[][] runJob(String[] args) {

        int exitCode = runJobInTOS(args);
        String[][] bufferValue = new String[][] { { Integer.toString(exitCode) } };

        return bufferValue;
    }

    public boolean hastBufferOutputComponent() {
        boolean hastBufferOutput = false;

        return hastBufferOutput;
    }

    public int runJobInTOS(String[] args) {
        // reset status
        status = "";

        String lastStr = "";
        for (String arg : args) {
            if (arg.equalsIgnoreCase("--context_param")) {
                lastStr = arg;
            } else if (lastStr.equals("")) {
                evalParam(arg);
            } else {
                evalParam(lastStr + " " + arg);
                lastStr = "";
            }
        }

        if (clientHost == null) {
            clientHost = defaultClientHost;
        }

        if (pid == null || "0".equals(pid)) {
            pid = TalendString.getAsciiRandomString(6);
        }

        if (rootPid == null) {
            rootPid = pid;
        }
        if (fatherPid == null) {
            fatherPid = pid;
        } else {
            isChildJob = true;
        }

        try {
            // call job/subjob with an existing context, like:
            // --context=production. if without this parameter, there will use
            // the default context instead.
            java.io.InputStream inContext = RasterJob.class.getClassLoader()
                    .getResourceAsStream("metadata_generator/rasterjob_0_1/contexts/" + contextStr + ".properties");
            if (isDefaultContext && inContext == null) {

            } else {
                if (inContext != null) {
                    // defaultProps is in order to keep the original context
                    // value
                    defaultProps.load(inContext);
                    inContext.close();
                    context = new ContextProperties(defaultProps);
                } else {
                    // print info and job continue to run, for case:
                    // context_param is not empty.
                    System.err.println("Could not find the context " + contextStr);
                }
            }

            if (!context_param.isEmpty()) {
                context.putAll(context_param);
            }
            context.file = (String) context.getProperty("file");
            context.administrativeArea = (String) context.getProperty("administrativeArea");
            context.city = (String) context.getProperty("city");
            context.country = (String) context.getProperty("country");
            context.dataDir = (String) context.getProperty("dataDir");
            context.defaultProjection = (String) context.getProperty("defaultProjection");
            context.defaultXMax = (String) context.getProperty("defaultXMax");
            context.defaultXMin = (String) context.getProperty("defaultXMin");
            context.defaultYMax = (String) context.getProperty("defaultYMax");
            context.defaultYMin = (String) context.getProperty("defaultYMin");
            context.deliveryPoint = (String) context.getProperty("deliveryPoint");
            context.email = (String) context.getProperty("email");
            try {
                context.generateMetadataInSeparateDir = routines.system.ParserUtils
                        .parseTo_Boolean(context.getProperty("generateMetadataInSeparateDir"));
            } catch (NumberFormatException e) {
                context.generateMetadataInSeparateDir = null;
            }
            context.individualName = (String) context.getProperty("individualName");
            context.logDirectory = (String) context.getProperty("logDirectory");
            context.mdAdministrativeArea = (String) context.getProperty("mdAdministrativeArea");
            context.mdCity = (String) context.getProperty("mdCity");
            context.mdCountry = (String) context.getProperty("mdCountry");
            context.mdDeliveryPoint = (String) context.getProperty("mdDeliveryPoint");
            context.mdEmail = (String) context.getProperty("mdEmail");
            context.mdIndividualName = (String) context.getProperty("mdIndividualName");
            context.mdOrganisation = (String) context.getProperty("mdOrganisation");
            context.mdPositionName = (String) context.getProperty("mdPositionName");
            context.mdPostalCode = (String) context.getProperty("mdPostalCode");
            context.mdVoice = (String) context.getProperty("mdVoice");
            context.metadataDir = (String) context.getProperty("metadataDir");
            context.organisationName = (String) context.getProperty("organisationName");
            context.positionName = (String) context.getProperty("positionName");
            context.postalCode = (String) context.getProperty("postalCode");
            context.rasterExtensions = (String) context.getProperty("rasterExtensions");
            context.resourceDir = (String) context.getProperty("resourceDir");
            try {
                context.scanRaster = routines.system.ParserUtils.parseTo_Boolean(context.getProperty("scanRaster"));
            } catch (NumberFormatException e) {
                context.scanRaster = null;
            }
            try {
                context.scanVector = routines.system.ParserUtils.parseTo_Boolean(context.getProperty("scanVector"));
            } catch (NumberFormatException e) {
                context.scanVector = null;
            }
            context.titlePrefixRaster = (String) context.getProperty("titlePrefixRaster");
            context.titlePrefixVector = (String) context.getProperty("titlePrefixVector");
            context.vectorExtensions = (String) context.getProperty("vectorExtensions");
            context.voice = (String) context.getProperty("voice");
        } catch (java.io.IOException ie) {
            System.err.println("Could not load context " + contextStr);
            ie.printStackTrace();
        }

        // get context value from parent directly
        if (parentContextMap != null && !parentContextMap.isEmpty()) {
            if (parentContextMap.containsKey("file")) {
                context.file = (String) parentContextMap.get("file");
            }
            if (parentContextMap.containsKey("administrativeArea")) {
                context.administrativeArea = (String) parentContextMap.get("administrativeArea");
            }
            if (parentContextMap.containsKey("city")) {
                context.city = (String) parentContextMap.get("city");
            }
            if (parentContextMap.containsKey("country")) {
                context.country = (String) parentContextMap.get("country");
            }
            if (parentContextMap.containsKey("dataDir")) {
                context.dataDir = (String) parentContextMap.get("dataDir");
            }
            if (parentContextMap.containsKey("defaultProjection")) {
                context.defaultProjection = (String) parentContextMap.get("defaultProjection");
            }
            if (parentContextMap.containsKey("defaultXMax")) {
                context.defaultXMax = (String) parentContextMap.get("defaultXMax");
            }
            if (parentContextMap.containsKey("defaultXMin")) {
                context.defaultXMin = (String) parentContextMap.get("defaultXMin");
            }
            if (parentContextMap.containsKey("defaultYMax")) {
                context.defaultYMax = (String) parentContextMap.get("defaultYMax");
            }
            if (parentContextMap.containsKey("defaultYMin")) {
                context.defaultYMin = (String) parentContextMap.get("defaultYMin");
            }
            if (parentContextMap.containsKey("deliveryPoint")) {
                context.deliveryPoint = (String) parentContextMap.get("deliveryPoint");
            }
            if (parentContextMap.containsKey("email")) {
                context.email = (String) parentContextMap.get("email");
            }
            if (parentContextMap.containsKey("generateMetadataInSeparateDir")) {
                context.generateMetadataInSeparateDir = (Boolean) parentContextMap
                        .get("generateMetadataInSeparateDir");
            }
            if (parentContextMap.containsKey("individualName")) {
                context.individualName = (String) parentContextMap.get("individualName");
            }
            if (parentContextMap.containsKey("logDirectory")) {
                context.logDirectory = (String) parentContextMap.get("logDirectory");
            }
            if (parentContextMap.containsKey("mdAdministrativeArea")) {
                context.mdAdministrativeArea = (String) parentContextMap.get("mdAdministrativeArea");
            }
            if (parentContextMap.containsKey("mdCity")) {
                context.mdCity = (String) parentContextMap.get("mdCity");
            }
            if (parentContextMap.containsKey("mdCountry")) {
                context.mdCountry = (String) parentContextMap.get("mdCountry");
            }
            if (parentContextMap.containsKey("mdDeliveryPoint")) {
                context.mdDeliveryPoint = (String) parentContextMap.get("mdDeliveryPoint");
            }
            if (parentContextMap.containsKey("mdEmail")) {
                context.mdEmail = (String) parentContextMap.get("mdEmail");
            }
            if (parentContextMap.containsKey("mdIndividualName")) {
                context.mdIndividualName = (String) parentContextMap.get("mdIndividualName");
            }
            if (parentContextMap.containsKey("mdOrganisation")) {
                context.mdOrganisation = (String) parentContextMap.get("mdOrganisation");
            }
            if (parentContextMap.containsKey("mdPositionName")) {
                context.mdPositionName = (String) parentContextMap.get("mdPositionName");
            }
            if (parentContextMap.containsKey("mdPostalCode")) {
                context.mdPostalCode = (String) parentContextMap.get("mdPostalCode");
            }
            if (parentContextMap.containsKey("mdVoice")) {
                context.mdVoice = (String) parentContextMap.get("mdVoice");
            }
            if (parentContextMap.containsKey("metadataDir")) {
                context.metadataDir = (String) parentContextMap.get("metadataDir");
            }
            if (parentContextMap.containsKey("organisationName")) {
                context.organisationName = (String) parentContextMap.get("organisationName");
            }
            if (parentContextMap.containsKey("positionName")) {
                context.positionName = (String) parentContextMap.get("positionName");
            }
            if (parentContextMap.containsKey("postalCode")) {
                context.postalCode = (String) parentContextMap.get("postalCode");
            }
            if (parentContextMap.containsKey("rasterExtensions")) {
                context.rasterExtensions = (String) parentContextMap.get("rasterExtensions");
            }
            if (parentContextMap.containsKey("resourceDir")) {
                context.resourceDir = (String) parentContextMap.get("resourceDir");
            }
            if (parentContextMap.containsKey("scanRaster")) {
                context.scanRaster = (Boolean) parentContextMap.get("scanRaster");
            }
            if (parentContextMap.containsKey("scanVector")) {
                context.scanVector = (Boolean) parentContextMap.get("scanVector");
            }
            if (parentContextMap.containsKey("titlePrefixRaster")) {
                context.titlePrefixRaster = (String) parentContextMap.get("titlePrefixRaster");
            }
            if (parentContextMap.containsKey("titlePrefixVector")) {
                context.titlePrefixVector = (String) parentContextMap.get("titlePrefixVector");
            }
            if (parentContextMap.containsKey("vectorExtensions")) {
                context.vectorExtensions = (String) parentContextMap.get("vectorExtensions");
            }
            if (parentContextMap.containsKey("voice")) {
                context.voice = (String) parentContextMap.get("voice");
            }
        }

        // Resume: init the resumeUtil
        resumeEntryMethodName = ResumeUtil.getResumeEntryMethodName(resuming_checkpoint_path);
        resumeUtil = new ResumeUtil(resuming_logs_dir_path, isChildJob, rootPid);
        resumeUtil.initCommonInfo(pid, rootPid, fatherPid, projectName, jobName, contextStr, jobVersion);

        List<String> parametersToEncrypt = new java.util.ArrayList<String>();
        // Resume: jobStart
        resumeUtil.addLog("JOB_STARTED", "JOB:" + jobName, parent_part_launcher,
                Thread.currentThread().getId() + "", "", "", "", "",
                resumeUtil.convertToJsonText(context, parametersToEncrypt));

        java.util.concurrent.ConcurrentHashMap<Object, Object> concurrentHashMap = new java.util.concurrent.ConcurrentHashMap<Object, Object>();
        globalMap.put("concurrentHashMap", concurrentHashMap);

        long startUsedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
        long endUsedMemory = 0;
        long end = 0;

        startTime = System.currentTimeMillis();

        this.globalResumeTicket = true;// to run tPreJob

        this.globalResumeTicket = false;// to run others jobs

        try {
            errorCode = null;
            sGdalInfoInput_2Process(globalMap);
            if (!"failure".equals(status)) {
                status = "end";
            }
        } catch (TalendException e_sGdalInfoInput_2) {
            globalMap.put("sGdalInfoInput_2_SUBPROCESS_STATE", -1);

            e_sGdalInfoInput_2.printStackTrace();

        }

        this.globalResumeTicket = true;// to run tPostJob

        end = System.currentTimeMillis();

        if (watch) {
            System.out.println((end - startTime) + " milliseconds");
        }

        endUsedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
        if (false) {
            System.out
                    .println((endUsedMemory - startUsedMemory) + " bytes memory increase when running : RasterJob");
        }

        int returnCode = 0;
        if (errorCode == null) {
            returnCode = status != null && status.equals("failure") ? 1 : 0;
        } else {
            returnCode = errorCode.intValue();
        }
        resumeUtil.addLog("JOB_ENDED", "JOB:" + jobName, parent_part_launcher, Thread.currentThread().getId() + "",
                "", "" + returnCode, "", "", "");

        return returnCode;

    }

    public void destroy() {
    }

    private java.util.Map<String, Object> getSharedConnections4REST() {
        java.util.Map<String, Object> connections = new java.util.HashMap<String, Object>();
        return connections;
    }

    private void evalParam(String arg) {
        if (arg.startsWith("--resuming_logs_dir_path")) {
            resuming_logs_dir_path = arg.substring(25);
        } else if (arg.startsWith("--resuming_checkpoint_path")) {
            resuming_checkpoint_path = arg.substring(27);
        } else if (arg.startsWith("--parent_part_launcher")) {
            parent_part_launcher = arg.substring(23);
        } else if (arg.startsWith("--watch")) {
            watch = true;
        } else if (arg.startsWith("--stat_port=")) {
            String portStatsStr = arg.substring(12);
            if (portStatsStr != null && !portStatsStr.equals("null")) {
                portStats = Integer.parseInt(portStatsStr);
            }
        } else if (arg.startsWith("--trace_port=")) {
            portTraces = Integer.parseInt(arg.substring(13));
        } else if (arg.startsWith("--client_host=")) {
            clientHost = arg.substring(14);
        } else if (arg.startsWith("--context=")) {
            contextStr = arg.substring(10);
            isDefaultContext = false;
        } else if (arg.startsWith("--father_pid=")) {
            fatherPid = arg.substring(13);
        } else if (arg.startsWith("--root_pid=")) {
            rootPid = arg.substring(11);
        } else if (arg.startsWith("--father_node=")) {
            fatherNode = arg.substring(14);
        } else if (arg.startsWith("--pid=")) {
            pid = arg.substring(6);
        } else if (arg.startsWith("--context_param")) {
            String keyValue = arg.substring(16);
            int index = -1;
            if (keyValue != null && (index = keyValue.indexOf('=')) > -1) {
                if (fatherPid == null) {
                    context_param.put(keyValue.substring(0, index),
                            replaceEscapeChars(keyValue.substring(index + 1)));
                } else { // the subjob won't escape the especial chars
                    context_param.put(keyValue.substring(0, index), keyValue.substring(index + 1));
                }
            }
        } else if (arg.startsWith("--log4jLevel=")) {
            log4jLevel = arg.substring(13);
        }

    }

    private final String[][] escapeChars = { { "\\\\", "\\" }, { "\\n", "\n" }, { "\\'", "\'" }, { "\\r", "\r" },
            { "\\f", "\f" }, { "\\b", "\b" }, { "\\t", "\t" } };

    private String replaceEscapeChars(String keyValue) {

        if (keyValue == null || ("").equals(keyValue.trim())) {
            return keyValue;
        }

        StringBuilder result = new StringBuilder();
        int currIndex = 0;
        while (currIndex < keyValue.length()) {
            int index = -1;
            // judege if the left string includes escape chars
            for (String[] strArray : escapeChars) {
                index = keyValue.indexOf(strArray[0], currIndex);
                if (index >= 0) {

                    result.append(keyValue.substring(currIndex, index + strArray[0].length()).replace(strArray[0],
                            strArray[1]));
                    currIndex = index + strArray[0].length();
                    break;
                }
            }
            // if the left string doesn't include escape chars, append the left
            // into the result
            if (index < 0) {
                result.append(keyValue.substring(currIndex));
                currIndex = currIndex + keyValue.length();
            }
        }

        return result.toString();
    }

    public Integer getErrorCode() {
        return errorCode;
    }

    public String getStatus() {
        return status;
    }

    ResumeUtil resumeUtil = null;
}
/************************************************************************************************
 * 319751 characters generated by Talend Open Studio for Data Integration on the
 * 21 de mayo de 2015 14:36:22 CEST
 ************************************************************************************************/