metadata_generator.vectorjob_0_1.VectorJob.java Source code

Java tutorial

Introduction

Here is the source code for metadata_generator.vectorjob_0_1.VectorJob.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.vectorjob_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 sOGRInfoInput_1
import org.talend.sdi.geometry.Geometry;

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

@SuppressWarnings("unused")
/**
 * Job: VectorJob Purpose: Detect vector files properties and generate metadata<br>
 * Description: Read data properties (columns, layer name, extension, projection) from vector files using OGR and generate metadata documents <br>
 * @author test@talend.com
 * @version 5.6.0.20141024_1545
 * @status DEV
 */
public class VectorJob 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 (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 (file != null) {

                this.setProperty("file", file.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 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 file;

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

        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 = "VectorJob";
    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);
                    VectorJob.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(VectorJob.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 sOGRInfoInput_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";

        sOGRInfoInput_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tFlowToIterate_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";

        sOGRInfoInput_1_onSubJobError(exception, errorComponent, globalMap);
    }

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

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

        status = "failure";

        sOGRInfoInput_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tReplaceList_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";

        sOGRInfoInput_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tLogRow_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";

        sOGRInfoInput_1_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());

        status = "failure";

        sOGRInfoInput_1_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tNormalize_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";

        sOGRInfoInput_1_onSubJobError(exception, errorComponent, globalMap);
    }

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

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

        status = "failure";

        sOGRInfoInput_1_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());

        status = "failure";

        sOGRInfoInput_1_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());

        status = "failure";

        sOGRInfoInput_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 tFileInputDelimited_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";

        tFileInputDelimited_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void tHash_geometryType_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_metadataProperties_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_2_onSubJobError(exception, errorComponent, globalMap);
    }

    public void sOGRInfoInput_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 void tFileInputDelimited_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 static class row3Struct implements routines.system.IPersistableRow<row3Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = 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 layerName;

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

        public String columnsDef;

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

        public String bands;

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

        public String colName;

        public String getColName() {
            return this.colName;
        }

        public String colType;

        public String getColType() {
            return this.colType;
        }

        public String colPrecision;

        public String getColPrecision() {
            return this.colPrecision;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                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.layerName = readString(dis);

                    this.columnsDef = readString(dis);

                    this.bands = readString(dis);

                    this.colName = readString(dis);

                    this.colType = readString(dis);

                    this.colPrecision = 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.layerName, dos);

                // String

                writeString(this.columnsDef, dos);

                // String

                writeString(this.bands, dos);

                // String

                writeString(this.colName, dos);

                // String

                writeString(this.colType, dos);

                // String

                writeString(this.colPrecision, 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(",layerName=" + layerName);
            sb.append(",columnsDef=" + columnsDef);
            sb.append(",bands=" + bands);
            sb.append(",colName=" + colName);
            sb.append(",colType=" + colType);
            sb.append(",colPrecision=" + colPrecision);
            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 row4Struct implements routines.system.IPersistableRow<row4Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = 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 layerName;

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

        public String columnsDef;

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

        public String bands;

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

        public String colName;

        public String getColName() {
            return this.colName;
        }

        public String colType;

        public String getColType() {
            return this.colType;
        }

        public String colPrecision;

        public String getColPrecision() {
            return this.colPrecision;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                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.layerName = readString(dis);

                    this.columnsDef = readString(dis);

                    this.bands = readString(dis);

                    this.colName = readString(dis);

                    this.colType = readString(dis);

                    this.colPrecision = 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.layerName, dos);

                // String

                writeString(this.columnsDef, dos);

                // String

                writeString(this.bands, dos);

                // String

                writeString(this.colName, dos);

                // String

                writeString(this.colType, dos);

                // String

                writeString(this.colPrecision, 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(",layerName=" + layerName);
            sb.append(",columnsDef=" + columnsDef);
            sb.append(",bands=" + bands);
            sb.append(",colName=" + colName);
            sb.append(",colType=" + colType);
            sb.append(",colPrecision=" + colPrecision);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(row4Struct 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_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = 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 layerName;

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

        public String columnsDef;

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

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                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.layerName = readString(dis);

                    this.columnsDef = 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.layerName, dos);

                // String

                writeString(this.columnsDef, 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(",layerName=" + layerName);
            sb.append(",columnsDef=" + columnsDef);
            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 iso19115_3Struct implements routines.system.IPersistableRow<iso19115_3Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = 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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                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(iso19115_3Struct 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_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = new byte[0];

        public String driver;

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

        public String files;

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

        public String layer_name;

        public String getLayer_name() {
            return this.layer_name;
        }

        public String fid_column;

        public String getFid_column() {
            return this.fid_column;
        }

        public String geom_column;

        public String getGeom_column() {
            return this.geom_column;
        }

        public String columns_def;

        public String getColumns_def() {
            return this.columns_def;
        }

        public String geom_type;

        public String getGeom_type() {
            return this.geom_type;
        }

        public String srs;

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

        public Integer epsg_code;

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

        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 Integer nb_features;

        public Integer getNb_features() {
            return this.nb_features;
        }

        public String error;

        public String getError() {
            return this.error;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                try {

                    int length = 0;

                    this.driver = readString(dis);

                    this.files = readString(dis);

                    this.layer_name = readString(dis);

                    this.fid_column = readString(dis);

                    this.geom_column = readString(dis);

                    this.columns_def = readString(dis);

                    this.geom_type = readString(dis);

                    this.srs = readString(dis);

                    this.epsg_code = readInteger(dis);

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

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

                    this.nb_features = readInteger(dis);

                    this.error = 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);

                // String

                writeString(this.layer_name, dos);

                // String

                writeString(this.fid_column, dos);

                // String

                writeString(this.geom_column, dos);

                // String

                writeString(this.columns_def, dos);

                // String

                writeString(this.geom_type, dos);

                // String

                writeString(this.srs, dos);

                // Integer

                writeInteger(this.epsg_code, dos);

                // Geometry

                dos.writeObject(this.geo_extent);

                // Geometry

                dos.writeObject(this.latlon_extent);

                // Integer

                writeInteger(this.nb_features, dos);

                // String

                writeString(this.error, 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(",layer_name=" + layer_name);
            sb.append(",fid_column=" + fid_column);
            sb.append(",geom_column=" + geom_column);
            sb.append(",columns_def=" + columns_def);
            sb.append(",geom_type=" + geom_type);
            sb.append(",srs=" + srs);
            sb.append(",epsg_code=" + String.valueOf(epsg_code));
            sb.append(",geo_extent=" + String.valueOf(geo_extent));
            sb.append(",latlon_extent=" + String.valueOf(latlon_extent));
            sb.append(",nb_features=" + String.valueOf(nb_features));
            sb.append(",error=" + error);
            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 row1Struct implements routines.system.IPersistableRow<row1Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = new byte[0];

        public String driver;

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

        public String files;

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

        public String layer_name;

        public String getLayer_name() {
            return this.layer_name;
        }

        public String fid_column;

        public String getFid_column() {
            return this.fid_column;
        }

        public String geom_column;

        public String getGeom_column() {
            return this.geom_column;
        }

        public String columns_def;

        public String getColumns_def() {
            return this.columns_def;
        }

        public String geom_type;

        public String getGeom_type() {
            return this.geom_type;
        }

        public String srs;

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

        public Integer epsg_code;

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

        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 Integer nb_features;

        public Integer getNb_features() {
            return this.nb_features;
        }

        public String error;

        public String getError() {
            return this.error;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                try {

                    int length = 0;

                    this.driver = readString(dis);

                    this.files = readString(dis);

                    this.layer_name = readString(dis);

                    this.fid_column = readString(dis);

                    this.geom_column = readString(dis);

                    this.columns_def = readString(dis);

                    this.geom_type = readString(dis);

                    this.srs = readString(dis);

                    this.epsg_code = readInteger(dis);

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

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

                    this.nb_features = readInteger(dis);

                    this.error = 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);

                // String

                writeString(this.layer_name, dos);

                // String

                writeString(this.fid_column, dos);

                // String

                writeString(this.geom_column, dos);

                // String

                writeString(this.columns_def, dos);

                // String

                writeString(this.geom_type, dos);

                // String

                writeString(this.srs, dos);

                // Integer

                writeInteger(this.epsg_code, dos);

                // Geometry

                dos.writeObject(this.geo_extent);

                // Geometry

                dos.writeObject(this.latlon_extent);

                // Integer

                writeInteger(this.nb_features, dos);

                // String

                writeString(this.error, 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(",layer_name=" + layer_name);
            sb.append(",fid_column=" + fid_column);
            sb.append(",geom_column=" + geom_column);
            sb.append(",columns_def=" + columns_def);
            sb.append(",geom_type=" + geom_type);
            sb.append(",srs=" + srs);
            sb.append(",epsg_code=" + String.valueOf(epsg_code));
            sb.append(",geo_extent=" + String.valueOf(geo_extent));
            sb.append(",latlon_extent=" + String.valueOf(latlon_extent));
            sb.append(",nb_features=" + String.valueOf(nb_features));
            sb.append(",error=" + error);
            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 layerRowStruct implements routines.system.IPersistableRow<layerRowStruct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = new byte[0];

        public String driver;

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

        public String files;

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

        public String layer_name;

        public String getLayer_name() {
            return this.layer_name;
        }

        public String fid_column;

        public String getFid_column() {
            return this.fid_column;
        }

        public String geom_column;

        public String getGeom_column() {
            return this.geom_column;
        }

        public String columns_def;

        public String getColumns_def() {
            return this.columns_def;
        }

        public String geom_type;

        public String getGeom_type() {
            return this.geom_type;
        }

        public String srs;

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

        public Integer epsg_code;

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

        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 Integer nb_features;

        public Integer getNb_features() {
            return this.nb_features;
        }

        public String error;

        public String getError() {
            return this.error;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                try {

                    int length = 0;

                    this.driver = readString(dis);

                    this.files = readString(dis);

                    this.layer_name = readString(dis);

                    this.fid_column = readString(dis);

                    this.geom_column = readString(dis);

                    this.columns_def = readString(dis);

                    this.geom_type = readString(dis);

                    this.srs = readString(dis);

                    this.epsg_code = readInteger(dis);

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

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

                    this.nb_features = readInteger(dis);

                    this.error = 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);

                // String

                writeString(this.layer_name, dos);

                // String

                writeString(this.fid_column, dos);

                // String

                writeString(this.geom_column, dos);

                // String

                writeString(this.columns_def, dos);

                // String

                writeString(this.geom_type, dos);

                // String

                writeString(this.srs, dos);

                // Integer

                writeInteger(this.epsg_code, dos);

                // Geometry

                dos.writeObject(this.geo_extent);

                // Geometry

                dos.writeObject(this.latlon_extent);

                // Integer

                writeInteger(this.nb_features, dos);

                // String

                writeString(this.error, 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(",layer_name=" + layer_name);
            sb.append(",fid_column=" + fid_column);
            sb.append(",geom_column=" + geom_column);
            sb.append(",columns_def=" + columns_def);
            sb.append(",geom_type=" + geom_type);
            sb.append(",srs=" + srs);
            sb.append(",epsg_code=" + String.valueOf(epsg_code));
            sb.append(",geo_extent=" + String.valueOf(geo_extent));
            sb.append(",latlon_extent=" + String.valueOf(latlon_extent));
            sb.append(",nb_features=" + String.valueOf(nb_features));
            sb.append(",error=" + error);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(layerRowStruct 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 fileRowStruct implements routines.system.IPersistableRow<fileRowStruct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = new byte[0];

        public String driver;

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

        public String files;

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

        public String layer_name;

        public String getLayer_name() {
            return this.layer_name;
        }

        public String fid_column;

        public String getFid_column() {
            return this.fid_column;
        }

        public String geom_column;

        public String getGeom_column() {
            return this.geom_column;
        }

        public String columns_def;

        public String getColumns_def() {
            return this.columns_def;
        }

        public String geom_type;

        public String getGeom_type() {
            return this.geom_type;
        }

        public String srs;

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

        public Integer epsg_code;

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

        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 Integer nb_features;

        public Integer getNb_features() {
            return this.nb_features;
        }

        public String error;

        public String getError() {
            return this.error;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                try {

                    int length = 0;

                    this.driver = readString(dis);

                    this.files = readString(dis);

                    this.layer_name = readString(dis);

                    this.fid_column = readString(dis);

                    this.geom_column = readString(dis);

                    this.columns_def = readString(dis);

                    this.geom_type = readString(dis);

                    this.srs = readString(dis);

                    this.epsg_code = readInteger(dis);

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

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

                    this.nb_features = readInteger(dis);

                    this.error = 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);

                // String

                writeString(this.layer_name, dos);

                // String

                writeString(this.fid_column, dos);

                // String

                writeString(this.geom_column, dos);

                // String

                writeString(this.columns_def, dos);

                // String

                writeString(this.geom_type, dos);

                // String

                writeString(this.srs, dos);

                // Integer

                writeInteger(this.epsg_code, dos);

                // Geometry

                dos.writeObject(this.geo_extent);

                // Geometry

                dos.writeObject(this.latlon_extent);

                // Integer

                writeInteger(this.nb_features, dos);

                // String

                writeString(this.error, 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(",layer_name=" + layer_name);
            sb.append(",fid_column=" + fid_column);
            sb.append(",geom_column=" + geom_column);
            sb.append(",columns_def=" + columns_def);
            sb.append(",geom_type=" + geom_type);
            sb.append(",srs=" + srs);
            sb.append(",epsg_code=" + String.valueOf(epsg_code));
            sb.append(",geo_extent=" + String.valueOf(geo_extent));
            sb.append(",latlon_extent=" + String.valueOf(latlon_extent));
            sb.append(",nb_features=" + String.valueOf(nb_features));
            sb.append(",error=" + error);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(fileRowStruct 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_sOGRInfoInput_1Struct
            implements routines.system.IPersistableRow<after_sOGRInfoInput_1Struct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = new byte[0];

        public String driver;

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

        public String files;

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

        public String layer_name;

        public String getLayer_name() {
            return this.layer_name;
        }

        public String fid_column;

        public String getFid_column() {
            return this.fid_column;
        }

        public String geom_column;

        public String getGeom_column() {
            return this.geom_column;
        }

        public String columns_def;

        public String getColumns_def() {
            return this.columns_def;
        }

        public String geom_type;

        public String getGeom_type() {
            return this.geom_type;
        }

        public String srs;

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

        public Integer epsg_code;

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

        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 Integer nb_features;

        public Integer getNb_features() {
            return this.nb_features;
        }

        public String error;

        public String getError() {
            return this.error;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                try {

                    int length = 0;

                    this.driver = readString(dis);

                    this.files = readString(dis);

                    this.layer_name = readString(dis);

                    this.fid_column = readString(dis);

                    this.geom_column = readString(dis);

                    this.columns_def = readString(dis);

                    this.geom_type = readString(dis);

                    this.srs = readString(dis);

                    this.epsg_code = readInteger(dis);

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

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

                    this.nb_features = readInteger(dis);

                    this.error = 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);

                // String

                writeString(this.layer_name, dos);

                // String

                writeString(this.fid_column, dos);

                // String

                writeString(this.geom_column, dos);

                // String

                writeString(this.columns_def, dos);

                // String

                writeString(this.geom_type, dos);

                // String

                writeString(this.srs, dos);

                // Integer

                writeInteger(this.epsg_code, dos);

                // Geometry

                dos.writeObject(this.geo_extent);

                // Geometry

                dos.writeObject(this.latlon_extent);

                // Integer

                writeInteger(this.nb_features, dos);

                // String

                writeString(this.error, 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(",layer_name=" + layer_name);
            sb.append(",fid_column=" + fid_column);
            sb.append(",geom_column=" + geom_column);
            sb.append(",columns_def=" + columns_def);
            sb.append(",geom_type=" + geom_type);
            sb.append(",srs=" + srs);
            sb.append(",epsg_code=" + String.valueOf(epsg_code));
            sb.append(",geo_extent=" + String.valueOf(geo_extent));
            sb.append(",latlon_extent=" + String.valueOf(latlon_extent));
            sb.append(",nb_features=" + String.valueOf(nb_features));
            sb.append(",error=" + error);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(after_sOGRInfoInput_1Struct 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 sOGRInfoInput_1Process(final java.util.Map<String, Object> globalMap) throws TalendException {
        globalMap.put("sOGRInfoInput_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;

                tFileInputDelimited_1Process(globalMap);
                tFileInputDelimited_2Process(globalMap);

                fileRowStruct fileRow = new fileRowStruct();
                layerRowStruct layerRow = new layerRowStruct();
                layerRowStruct row1 = layerRow;
                layerRowStruct fromActualFile = layerRow;
                iso19115_3Struct iso19115_3 = new iso19115_3Struct();
                row2Struct row2 = new row2Struct();
                row4Struct row4 = new row4Struct();
                row4Struct row3 = row4;

                /**
                 * [tFlowToIterate_1 begin ] start
                 */

                int NB_ITERATE_sOGRInfoInput_3 = 0; // for statistics

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

                currentComponent = "tFlowToIterate_1";

                int tos_count_tFlowToIterate_1 = 0;

                int nb_line_tFlowToIterate_1 = 0;
                int counter_tFlowToIterate_1 = 0;

                /**
                 * [tFlowToIterate_1 begin ] stop
                 */

                /**
                 * [sOGRInfoInput_1 begin ] start
                 */

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

                currentComponent = "sOGRInfoInput_1";

                int tos_count_sOGRInfoInput_1 = 0;

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

                /* Initialize OGR main variables */
                org.gdal.ogr.DataSource dataset_sOGRInfoInput_1 = null;
                org.gdal.ogr.Driver driver_sOGRInfoInput_1 = null;
                org.gdal.osr.SpatialReference proj_sOGRInfoInput_1, latlon_sOGRInfoInput_1 = null;
                org.gdal.osr.CoordinateTransformation transform_sOGRInfoInput_1 = null;

                boolean bReadOnly_sOGRInfoInput_1 = true;

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

                /* Initialize variables */
                String srs_sOGRInfoInput_1 = null;
                org.opengis.referencing.crs.CoordinateReferenceSystem crs_sOGRInfoInput_1 = null;
                // Default SRS EPSG code, if none is found
                int epsg_code_sOGRInfoInput_1 = -1;
                String datasetName_sOGRInfoInput_1 = /**
                                                     * Start field
                                                     * sOGRInfoInput_1:FILENAME
                                                     */
                        context.file/** End field sOGRInfoInput_1:FILENAME */
                ;
                String FS_sOGRInfoInput_1 = /**
                                            * Start field
                                            * sOGRInfoInput_1:FIELD_SEPARATOR
                                            */
                        "|"/** End field sOGRInfoInput_1:FIELD_SEPARATOR */
                ;
                String error_sOGRInfoInput_1 = "";
                String geomType_sOGRInfoInput_1 = "";
                String fidColumn_sOGRInfoInput_1 = "";
                String geomColumn_sOGRInfoInput_1 = "";
                String columnsDef_sOGRInfoInput_1 = "";
                int nbFeatures_sOGRInfoInput_1 = 0;
                int nbErrors_sOGRInfoInput_1 = 0;
                String errors_sOGRInfoInput_1 = "";
                java.util.HashMap<String, double[]> corners_sOGRInfoInput_1;
                java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate> geoXY_sOGRInfoInput_1;
                java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate> latlonXY_sOGRInfoInput_1;

                // Register all known configured GDAL drivers.
                try {
                    org.gdal.ogr.ogr.RegisterAll();
                } 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 an OGR dataset
                // dataset_sOGRInfoInput_1 =
                // org.gdal.gdal.gdal.Open(datasetName_sOGRInfoInput_1,
                // org.gdal.gdalconst.gdalconstConstants.GA_ReadOnly);
                /* get feature source from store */
                dataset_sOGRInfoInput_1 = org.gdal.ogr.ogr.Open(datasetName_sOGRInfoInput_1,
                        !bReadOnly_sOGRInfoInput_1);
                if (dataset_sOGRInfoInput_1 == null) {
                    error_sOGRInfoInput_1 = "FAILURE:" + "Unable to open datasource `" + datasetName_sOGRInfoInput_1
                            + "' with the OGR drivers.";
                    // TODO : report in reject output
                    System.err.println(error_sOGRInfoInput_1);
                    for (int iDriver = 0; iDriver < org.gdal.ogr.ogr.GetDriverCount(); iDriver++) {
                        System.err.println("  -> " + org.gdal.ogr.ogr.GetDriver(iDriver).GetName());
                    }
                } else {

                    // Get current GDAL driver
                    driver_sOGRInfoInput_1 = dataset_sOGRInfoInput_1.GetDriver();
                    geoXY_sOGRInfoInput_1 = new java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate>(
                            4);
                    latlonXY_sOGRInfoInput_1 = new java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate>(
                            4);

                    for (int iLayer_sOGRInfoInput_1 = 0; iLayer_sOGRInfoInput_1 < dataset_sOGRInfoInput_1
                            .GetLayerCount(); iLayer_sOGRInfoInput_1++) {
                        org.gdal.ogr.Layer poLayer_sOGRInfoInput_1 = dataset_sOGRInfoInput_1
                                .GetLayer(iLayer_sOGRInfoInput_1);
                        String layerName_sOGRInfoInput_1 = poLayer_sOGRInfoInput_1.GetName();

                        // Skip layer if a specific one is requested.
                        if (!/** Start field sOGRInfoInput_1:LAYER */
                        ""/** End field sOGRInfoInput_1:LAYER */
                                .equals("") && !/** Start field sOGRInfoInput_1:LAYER */
                        ""/** End field sOGRInfoInput_1:LAYER */
                                .equals(layerName_sOGRInfoInput_1))
                            continue;

                        if (poLayer_sOGRInfoInput_1 == null) {
                            System.out.println(
                                    "FAILURE: Couldn't fetch advertised layer " + iLayer_sOGRInfoInput_1 + "!");
                            return;
                        }
                        org.gdal.ogr.FeatureDefn poDefn_sOGRInfoInput_1 = poLayer_sOGRInfoInput_1.GetLayerDefn();

                        geomType_sOGRInfoInput_1 = org.gdal.ogr.ogr
                                .GeometryTypeToName(poDefn_sOGRInfoInput_1.GetGeomType());

                        nbFeatures_sOGRInfoInput_1 = poLayer_sOGRInfoInput_1.GetFeatureCount();

                        /* Handle Projection - lat/long transformation */
                        /* CRS TODO get EPSG code */
                        int pszWKT_sOGRInfoInput_1;
                        proj_sOGRInfoInput_1 = poLayer_sOGRInfoInput_1.GetSpatialRef();
                        if (proj_sOGRInfoInput_1 == null) {
                            pszWKT_sOGRInfoInput_1 = -1;
                        } else {
                            srs_sOGRInfoInput_1 = proj_sOGRInfoInput_1.ExportToPrettyWkt();

                            // First try: use AutoIdentifyEPSG and init GeoTools
                            // CRS
                            try {
                                // This method inspects a WKT definition, and
                                // adds EPSG authority nodes
                                pszWKT_sOGRInfoInput_1 = proj_sOGRInfoInput_1.AutoIdentifyEPSG();
                                if ("EPSG".equals(proj_sOGRInfoInput_1.GetAuthorityName(null))) {
                                    epsg_code_sOGRInfoInput_1 = Integer.parseInt(
                                            poLayer_sOGRInfoInput_1.GetSpatialRef().GetAuthorityCode(null));
                                    try {
                                        crs_sOGRInfoInput_1 = org.geotools.referencing.CRS
                                                .decode("EPSG:" + epsg_code_sOGRInfoInput_1);
                                    } catch (Exception e) {
                                        System.err.println(e.getMessage());
                                    }
                                }
                            } catch (Exception e) {
                                System.err.println("Error trying to identify SRS from EPSG code. Error is: "
                                        + e.getMessage() + ". Trying with WKT ...");

                                // Second try: use WKT and init GeoTools CRS
                                try {
                                    if (srs_sOGRInfoInput_1 != null) {
                                        crs_sOGRInfoInput_1 = org.geotools.referencing.CRS
                                                .parseWKT(srs_sOGRInfoInput_1);
                                    }
                                } catch (Exception e2) {
                                    System.err.println(
                                            "Error trying to identify SRS from WKT. Error is: " + e2.getMessage());
                                }

                                pszWKT_sOGRInfoInput_1 = -1;
                            }

                            latlon_sOGRInfoInput_1 = proj_sOGRInfoInput_1.CloneGeogCS();
                        }

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

                        if (poLayer_sOGRInfoInput_1.GetFIDColumn().length() > 0)
                            fidColumn_sOGRInfoInput_1 = poLayer_sOGRInfoInput_1.GetFIDColumn();

                        if (poLayer_sOGRInfoInput_1.GetGeometryColumn().length() > 0)
                            geomColumn_sOGRInfoInput_1 = poLayer_sOGRInfoInput_1.GetGeometryColumn();

                        for (int iAttr = 0; iAttr < poDefn_sOGRInfoInput_1.GetFieldCount(); iAttr++) {
                            org.gdal.ogr.FieldDefn poField_sOGRInfoInput_1 = poDefn_sOGRInfoInput_1
                                    .GetFieldDefn(iAttr);

                            columnsDef_sOGRInfoInput_1 += poField_sOGRInfoInput_1.GetNameRef() + "#"
                                    + poField_sOGRInfoInput_1
                                            .GetFieldTypeName(poField_sOGRInfoInput_1.GetFieldType())
                                    + "#" + poField_sOGRInfoInput_1.GetWidth() + "."
                                    + poField_sOGRInfoInput_1.GetPrecision() + FS_sOGRInfoInput_1;
                        }

                        double oExt_sOGRInfoInput_1[] = poLayer_sOGRInfoInput_1.GetExtent(true);

                        if (oExt_sOGRInfoInput_1 != null) {
                            /* Compute extent */
                            corners_sOGRInfoInput_1 = new java.util.HashMap<String, double[]>(4);
                            double[] upper_left_corner_sOGRInfoInput_1 = { oExt_sOGRInfoInput_1[0],
                                    oExt_sOGRInfoInput_1[3] };
                            double[] lower_left_corner_sOGRInfoInput_1 = { oExt_sOGRInfoInput_1[0],
                                    oExt_sOGRInfoInput_1[2] };
                            double[] upper_right_corner_sOGRInfoInput_1 = { oExt_sOGRInfoInput_1[1],
                                    oExt_sOGRInfoInput_1[3] };
                            double[] lower_right_corner_sOGRInfoInput_1 = { oExt_sOGRInfoInput_1[1],
                                    oExt_sOGRInfoInput_1[2] };

                            corners_sOGRInfoInput_1.put("upperLeft", upper_left_corner_sOGRInfoInput_1);
                            corners_sOGRInfoInput_1.put("lowerLeft", lower_left_corner_sOGRInfoInput_1);
                            corners_sOGRInfoInput_1.put("upperRight", upper_right_corner_sOGRInfoInput_1);
                            corners_sOGRInfoInput_1.put("lowerRight", lower_right_corner_sOGRInfoInput_1);

                            for (String corner_sOGRInfoInput_1 : corners_sOGRInfoInput_1.keySet()) {
                                com.vividsolutions.jts.geom.Coordinate coord_sOGRInfoInput_1 = new com.vividsolutions.jts.geom.Coordinate();

                                coord_sOGRInfoInput_1.x = corners_sOGRInfoInput_1.get(corner_sOGRInfoInput_1)[0];
                                coord_sOGRInfoInput_1.y = corners_sOGRInfoInput_1.get(corner_sOGRInfoInput_1)[1];

                                geoXY_sOGRInfoInput_1.put(corner_sOGRInfoInput_1, coord_sOGRInfoInput_1);

                                // lat/long transformation
                                if (transform_sOGRInfoInput_1 != null) {
                                    double[] transPoint_sOGRInfoInput_1 = new double[3];
                                    transform_sOGRInfoInput_1.TransformPoint(transPoint_sOGRInfoInput_1,
                                            coord_sOGRInfoInput_1.x, coord_sOGRInfoInput_1.y, 0);
                                    latlonXY_sOGRInfoInput_1.put(corner_sOGRInfoInput_1,
                                            new com.vividsolutions.jts.geom.Coordinate(
                                                    transPoint_sOGRInfoInput_1[0], transPoint_sOGRInfoInput_1[1]));
                                }
                            }
                        }
                        fileRow.driver = driver_sOGRInfoInput_1.getName();
                        fileRow.files = datasetName_sOGRInfoInput_1;
                        fileRow.layer_name = layerName_sOGRInfoInput_1;
                        fileRow.fid_column = fidColumn_sOGRInfoInput_1;
                        fileRow.geom_column = geomColumn_sOGRInfoInput_1;
                        fileRow.columns_def = columnsDef_sOGRInfoInput_1;
                        fileRow.geom_type = geomType_sOGRInfoInput_1;
                        fileRow.srs = srs_sOGRInfoInput_1;
                        fileRow.epsg_code = epsg_code_sOGRInfoInput_1;

                        // the geo extent (Polygon)
                        com.vividsolutions.jts.geom.Coordinate[] geoCoords_sOGRInfoInput_1 = new com.vividsolutions.jts.geom.Coordinate[5];
                        org.talend.sdi.geometry.Geometry geo_extent_sOGRInfoInput_1 = null;
                        if (!geoXY_sOGRInfoInput_1.isEmpty()) {
                            try {
                                geoCoords_sOGRInfoInput_1[0] = geoXY_sOGRInfoInput_1.get("upperLeft");
                                geoCoords_sOGRInfoInput_1[1] = geoXY_sOGRInfoInput_1.get("lowerLeft");
                                geoCoords_sOGRInfoInput_1[2] = geoXY_sOGRInfoInput_1.get("lowerRight");
                                geoCoords_sOGRInfoInput_1[3] = geoXY_sOGRInfoInput_1.get("upperRight");
                                geoCoords_sOGRInfoInput_1[4] = geoXY_sOGRInfoInput_1.get("upperLeft");

                                geo_extent_sOGRInfoInput_1 = new org.talend.sdi.geometry.Geometry(
                                        (com.vividsolutions.jts.geom.Geometry) gFact_sOGRInfoInput_1.createPolygon(
                                                gFact_sOGRInfoInput_1.createLinearRing(geoCoords_sOGRInfoInput_1),
                                                null));
                                if (crs_sOGRInfoInput_1 != null) {
                                    geo_extent_sOGRInfoInput_1.setCRS(crs_sOGRInfoInput_1);
                                }
                            } catch (Exception e) {
                                nbErrors_sOGRInfoInput_1++;
                                errors_sOGRInfoInput_1 += "\n" + e.getMessage();
                                // TODO : catch error
                                e.printStackTrace();
                            }
                        }
                        fileRow.geo_extent = geo_extent_sOGRInfoInput_1;

                        // the lat/long extent (Polygon)
                        org.talend.sdi.geometry.Geometry latlon_extent_sOGRInfoInput_1 = null;
                        if (!latlonXY_sOGRInfoInput_1.isEmpty()) {
                            try {
                                com.vividsolutions.jts.geom.Coordinate[] latlonCoords_sOGRInfoInput_1 = new com.vividsolutions.jts.geom.Coordinate[5];
                                latlonCoords_sOGRInfoInput_1[0] = latlonXY_sOGRInfoInput_1.get("upperLeft");
                                latlonCoords_sOGRInfoInput_1[1] = latlonXY_sOGRInfoInput_1.get("lowerLeft");
                                latlonCoords_sOGRInfoInput_1[2] = latlonXY_sOGRInfoInput_1.get("lowerRight");
                                latlonCoords_sOGRInfoInput_1[3] = latlonXY_sOGRInfoInput_1.get("upperRight");
                                latlonCoords_sOGRInfoInput_1[4] = latlonXY_sOGRInfoInput_1.get("upperLeft");

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

                            } catch (Exception e) {
                                nbErrors_sOGRInfoInput_1++;
                                errors_sOGRInfoInput_1 += "\n" + e.getMessage();
                                // TODO : catch error
                                e.printStackTrace();
                            }
                        }

                        fileRow.latlon_extent = latlon_extent_sOGRInfoInput_1;
                        fileRow.nb_features = nbFeatures_sOGRInfoInput_1;
                        fileRow.error = error_sOGRInfoInput_1;

                        /**
                         * [sOGRInfoInput_1 begin ] stop
                         */

                        /**
                         * [sOGRInfoInput_1 main ] start
                         */

                        currentComponent = "sOGRInfoInput_1";

                        tos_count_sOGRInfoInput_1++;

                        /**
                         * [sOGRInfoInput_1 main ] stop
                         */

                        /**
                         * [tFlowToIterate_1 main ] start
                         */

                        currentComponent = "tFlowToIterate_1";

                        globalMap.put("fileRow.driver", fileRow.driver);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.files", fileRow.files);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.layer_name", fileRow.layer_name);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.fid_column", fileRow.fid_column);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.geom_column", fileRow.geom_column);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.columns_def", fileRow.columns_def);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.geom_type", fileRow.geom_type);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.srs", fileRow.srs);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.epsg_code", fileRow.epsg_code);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.geo_extent", fileRow.geo_extent);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.latlon_extent", fileRow.latlon_extent);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.nb_features", fileRow.nb_features);
                        nb_line_tFlowToIterate_1++;

                        globalMap.put("fileRow.error", fileRow.error);
                        nb_line_tFlowToIterate_1++;

                        counter_tFlowToIterate_1++;
                        globalMap.put("tFlowToIterate_1_CURRENT_ITERATION", counter_tFlowToIterate_1);

                        tos_count_tFlowToIterate_1++;

                        /**
                         * [tFlowToIterate_1 main ] stop
                         */
                        NB_ITERATE_sOGRInfoInput_3++;

                        /**
                         * [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_3 begin ] start
                         */

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

                        currentComponent = "tExtractDelimitedFields_3";

                        int tos_count_tExtractDelimitedFields_3 = 0;

                        int nb_line_tExtractDelimitedFields_3 = 0;

                        /**
                         * [tExtractDelimitedFields_3 begin ] stop
                         */

                        /**
                         * [tNormalize_1 begin ] start
                         */

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

                        currentComponent = "tNormalize_1";

                        int tos_count_tNormalize_1 = 0;

                        int nb_line_tNormalize_1 = 0;
                        String tmp_tNormalize_1 = null;
                        StringBuilder currentRecord_tNormalize_1 = null;
                        String[] normalizeRecord_tNormalize_1 = null;
                        java.util.Set<String> recordSet_tNormalize_1 = new java.util.HashSet<String>();

                        /**
                         * [tNormalize_1 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<metadataPropertiesStruct> tHash_Lookup_metadataProperties = (org.talend.designer.components.lookup.memory.AdvancedMemoryLookup<metadataPropertiesStruct>) ((org.talend.designer.components.lookup.memory.AdvancedMemoryLookup<metadataPropertiesStruct>) globalMap
                                .get("tHash_Lookup_metadataProperties"));

                        tHash_Lookup_metadataProperties.initGet();

                        metadataPropertiesStruct metadataPropertiesHashKey = new metadataPropertiesStruct();
                        metadataPropertiesStruct metadataPropertiesDefault = new metadataPropertiesStruct();
                        // ###############################

                        // ###############################
                        // # Vars initialization
                        class Var__tMap_1__Struct {
                            String dateStamp;
                            String srs;
                            String title;
                            String west;
                            String east;
                            String south;
                            String north;
                            String filepath;
                            String filename;
                            String uuidbase;
                            String mdUuid;
                            String fcatUuid;
                            String mdIndividualName;
                            String mdOrganisation;
                            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;
                        }
                        Var__tMap_1__Struct Var__tMap_1 = new Var__tMap_1__Struct();
                        // ###############################

                        // ###############################
                        // # Outputs initialization
                        iso19115_3Struct iso19115_3_tmp = new iso19115_3Struct();
                        // ###############################

                        /**
                         * [tMap_1 begin ] stop
                         */

                        /**
                         * [tLogRow_1 begin ] start
                         */

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

                        currentComponent = "tLogRow_1";

                        int tos_count_tLogRow_1 = 0;

                        /**
                         * [tLogRow_1 begin ] stop
                         */

                        /**
                         * [tReplaceList_1 begin ] start
                         */

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

                        currentComponent = "tReplaceList_1";

                        int tos_count_tReplaceList_1 = 0;

                        java.util.Map<geometryTypeStruct, geometryTypeStruct> tMap_geometryType_tReplaceList_1 = (java.util.Map<geometryTypeStruct, geometryTypeStruct>) globalMap
                                .get("tHash_geometryType");
                        java.util.Map<String, String> replace_tReplaceList_1 = new java.util.HashMap<String, String>();

                        for (Object o : tMap_geometryType_tReplaceList_1.keySet()) {

                            String search = tMap_geometryType_tReplaceList_1.get(o).OGR_TYPE;
                            String replacement = tMap_geometryType_tReplaceList_1.get(o).ISO_TYPE;
                            replace_tReplaceList_1.put(search, replacement);
                        }

                        /**
                         * [tReplaceList_1 begin ] stop
                         */

                        /**
                         * [sOGRInfoInput_3 begin ] start
                         */

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

                        currentComponent = "sOGRInfoInput_3";

                        int tos_count_sOGRInfoInput_3 = 0;

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

                        /* Initialize OGR main variables */
                        org.gdal.ogr.DataSource dataset_sOGRInfoInput_3 = null;
                        org.gdal.ogr.Driver driver_sOGRInfoInput_3 = null;
                        org.gdal.osr.SpatialReference proj_sOGRInfoInput_3, latlon_sOGRInfoInput_3 = null;
                        org.gdal.osr.CoordinateTransformation transform_sOGRInfoInput_3 = null;

                        boolean bReadOnly_sOGRInfoInput_3 = true;

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

                        /* Initialize variables */
                        String srs_sOGRInfoInput_3 = null;
                        org.opengis.referencing.crs.CoordinateReferenceSystem crs_sOGRInfoInput_3 = null;
                        // Default SRS EPSG code, if none is found
                        int epsg_code_sOGRInfoInput_3 = -1;
                        String datasetName_sOGRInfoInput_3 = /**
                                                             * Start field
                                                             * sOGRInfoInput_3:FILENAME
                                                             */
                                context.file/** End field sOGRInfoInput_3:FILENAME */
                        ;
                        String FS_sOGRInfoInput_3 = /**
                                                    * Start field
                                                    * sOGRInfoInput_3:FIELD_SEPARATOR
                                                    */
                                "|"/** End field sOGRInfoInput_3:FIELD_SEPARATOR */
                        ;
                        String error_sOGRInfoInput_3 = "";
                        String geomType_sOGRInfoInput_3 = "";
                        String fidColumn_sOGRInfoInput_3 = "";
                        String geomColumn_sOGRInfoInput_3 = "";
                        String columnsDef_sOGRInfoInput_3 = "";
                        int nbFeatures_sOGRInfoInput_3 = 0;
                        int nbErrors_sOGRInfoInput_3 = 0;
                        String errors_sOGRInfoInput_3 = "";
                        java.util.HashMap<String, double[]> corners_sOGRInfoInput_3;
                        java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate> geoXY_sOGRInfoInput_3;
                        java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate> latlonXY_sOGRInfoInput_3;

                        // Register all known configured GDAL drivers.
                        try {
                            org.gdal.ogr.ogr.RegisterAll();
                        } 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 an OGR dataset
                        // dataset_sOGRInfoInput_3 =
                        // org.gdal.gdal.gdal.Open(datasetName_sOGRInfoInput_3,
                        // org.gdal.gdalconst.gdalconstConstants.GA_ReadOnly);
                        /* get feature source from store */
                        dataset_sOGRInfoInput_3 = org.gdal.ogr.ogr.Open(datasetName_sOGRInfoInput_3,
                                !bReadOnly_sOGRInfoInput_3);
                        if (dataset_sOGRInfoInput_3 == null) {
                            error_sOGRInfoInput_3 = "FAILURE:" + "Unable to open datasource `"
                                    + datasetName_sOGRInfoInput_3 + "' with the OGR drivers.";
                            // TODO : report in reject output
                            System.err.println(error_sOGRInfoInput_3);
                            for (int iDriver = 0; iDriver < org.gdal.ogr.ogr.GetDriverCount(); iDriver++) {
                                System.err.println("  -> " + org.gdal.ogr.ogr.GetDriver(iDriver).GetName());
                            }
                        } else {

                            // Get current GDAL driver
                            driver_sOGRInfoInput_3 = dataset_sOGRInfoInput_3.GetDriver();
                            geoXY_sOGRInfoInput_3 = new java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate>(
                                    4);
                            latlonXY_sOGRInfoInput_3 = new java.util.HashMap<String, com.vividsolutions.jts.geom.Coordinate>(
                                    4);

                            for (int iLayer_sOGRInfoInput_3 = 0; iLayer_sOGRInfoInput_3 < dataset_sOGRInfoInput_3
                                    .GetLayerCount(); iLayer_sOGRInfoInput_3++) {
                                org.gdal.ogr.Layer poLayer_sOGRInfoInput_3 = dataset_sOGRInfoInput_3
                                        .GetLayer(iLayer_sOGRInfoInput_3);
                                String layerName_sOGRInfoInput_3 = poLayer_sOGRInfoInput_3.GetName();

                                // Skip layer if a specific one is requested.
                                if (!/** Start field sOGRInfoInput_3:LAYER */
                                ((String) globalMap.get("fileRow.layer_name"))/**
                                                                              * 
                                                                              * End field sOGRInfoInput_3:LAYER
                                                                              */
                                        .equals("") && !/**
                                                        * Start field
                                                        * sOGRInfoInput_3:LAYER
                                                        */
                                ((String) globalMap.get("fileRow.layer_name"))/**
                                                                              * 
                                                                              * End field sOGRInfoInput_3:LAYER
                                                                              */
                                        .equals(layerName_sOGRInfoInput_3))
                                    continue;

                                if (poLayer_sOGRInfoInput_3 == null) {
                                    System.out.println("FAILURE: Couldn't fetch advertised layer "
                                            + iLayer_sOGRInfoInput_3 + "!");
                                    return;
                                }
                                org.gdal.ogr.FeatureDefn poDefn_sOGRInfoInput_3 = poLayer_sOGRInfoInput_3
                                        .GetLayerDefn();

                                geomType_sOGRInfoInput_3 = org.gdal.ogr.ogr
                                        .GeometryTypeToName(poDefn_sOGRInfoInput_3.GetGeomType());

                                nbFeatures_sOGRInfoInput_3 = poLayer_sOGRInfoInput_3.GetFeatureCount();

                                /* Handle Projection - lat/long transformation */
                                /* CRS TODO get EPSG code */
                                int pszWKT_sOGRInfoInput_3;
                                proj_sOGRInfoInput_3 = poLayer_sOGRInfoInput_3.GetSpatialRef();
                                if (proj_sOGRInfoInput_3 == null) {
                                    pszWKT_sOGRInfoInput_3 = -1;
                                } else {
                                    srs_sOGRInfoInput_3 = proj_sOGRInfoInput_3.ExportToPrettyWkt();

                                    // First try: use AutoIdentifyEPSG and init
                                    // GeoTools CRS
                                    try {
                                        // This method inspects a WKT
                                        // definition, and adds EPSG authority
                                        // nodes
                                        pszWKT_sOGRInfoInput_3 = proj_sOGRInfoInput_3.AutoIdentifyEPSG();
                                        if ("EPSG".equals(proj_sOGRInfoInput_3.GetAuthorityName(null))) {
                                            epsg_code_sOGRInfoInput_3 = Integer.parseInt(
                                                    poLayer_sOGRInfoInput_3.GetSpatialRef().GetAuthorityCode(null));
                                            try {
                                                crs_sOGRInfoInput_3 = org.geotools.referencing.CRS
                                                        .decode("EPSG:" + epsg_code_sOGRInfoInput_3);
                                            } catch (Exception e) {
                                                System.err.println(e.getMessage());
                                            }
                                        }
                                    } catch (Exception e) {
                                        System.err.println("Error trying to identify SRS from EPSG code. Error is: "
                                                + e.getMessage() + ". Trying with WKT ...");

                                        // Second try: use WKT and init GeoTools
                                        // CRS
                                        try {
                                            if (srs_sOGRInfoInput_3 != null) {
                                                crs_sOGRInfoInput_3 = org.geotools.referencing.CRS
                                                        .parseWKT(srs_sOGRInfoInput_3);
                                            }
                                        } catch (Exception e2) {
                                            System.err.println("Error trying to identify SRS from WKT. Error is: "
                                                    + e2.getMessage());
                                        }

                                        pszWKT_sOGRInfoInput_3 = -1;
                                    }

                                    latlon_sOGRInfoInput_3 = proj_sOGRInfoInput_3.CloneGeogCS();
                                }

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

                                if (poLayer_sOGRInfoInput_3.GetFIDColumn().length() > 0)
                                    fidColumn_sOGRInfoInput_3 = poLayer_sOGRInfoInput_3.GetFIDColumn();

                                if (poLayer_sOGRInfoInput_3.GetGeometryColumn().length() > 0)
                                    geomColumn_sOGRInfoInput_3 = poLayer_sOGRInfoInput_3.GetGeometryColumn();

                                for (int iAttr = 0; iAttr < poDefn_sOGRInfoInput_3.GetFieldCount(); iAttr++) {
                                    org.gdal.ogr.FieldDefn poField_sOGRInfoInput_3 = poDefn_sOGRInfoInput_3
                                            .GetFieldDefn(iAttr);

                                    columnsDef_sOGRInfoInput_3 += poField_sOGRInfoInput_3.GetNameRef() + "#"
                                            + poField_sOGRInfoInput_3
                                                    .GetFieldTypeName(poField_sOGRInfoInput_3.GetFieldType())
                                            + "#" + poField_sOGRInfoInput_3.GetWidth() + "."
                                            + poField_sOGRInfoInput_3.GetPrecision() + FS_sOGRInfoInput_3;
                                }

                                double oExt_sOGRInfoInput_3[] = poLayer_sOGRInfoInput_3.GetExtent(true);

                                if (oExt_sOGRInfoInput_3 != null) {
                                    /* Compute extent */
                                    corners_sOGRInfoInput_3 = new java.util.HashMap<String, double[]>(4);
                                    double[] upper_left_corner_sOGRInfoInput_3 = { oExt_sOGRInfoInput_3[0],
                                            oExt_sOGRInfoInput_3[3] };
                                    double[] lower_left_corner_sOGRInfoInput_3 = { oExt_sOGRInfoInput_3[0],
                                            oExt_sOGRInfoInput_3[2] };
                                    double[] upper_right_corner_sOGRInfoInput_3 = { oExt_sOGRInfoInput_3[1],
                                            oExt_sOGRInfoInput_3[3] };
                                    double[] lower_right_corner_sOGRInfoInput_3 = { oExt_sOGRInfoInput_3[1],
                                            oExt_sOGRInfoInput_3[2] };

                                    corners_sOGRInfoInput_3.put("upperLeft", upper_left_corner_sOGRInfoInput_3);
                                    corners_sOGRInfoInput_3.put("lowerLeft", lower_left_corner_sOGRInfoInput_3);
                                    corners_sOGRInfoInput_3.put("upperRight", upper_right_corner_sOGRInfoInput_3);
                                    corners_sOGRInfoInput_3.put("lowerRight", lower_right_corner_sOGRInfoInput_3);

                                    for (String corner_sOGRInfoInput_3 : corners_sOGRInfoInput_3.keySet()) {
                                        com.vividsolutions.jts.geom.Coordinate coord_sOGRInfoInput_3 = new com.vividsolutions.jts.geom.Coordinate();

                                        coord_sOGRInfoInput_3.x = corners_sOGRInfoInput_3
                                                .get(corner_sOGRInfoInput_3)[0];
                                        coord_sOGRInfoInput_3.y = corners_sOGRInfoInput_3
                                                .get(corner_sOGRInfoInput_3)[1];

                                        geoXY_sOGRInfoInput_3.put(corner_sOGRInfoInput_3, coord_sOGRInfoInput_3);

                                        // lat/long transformation
                                        if (transform_sOGRInfoInput_3 != null) {
                                            double[] transPoint_sOGRInfoInput_3 = new double[3];
                                            transform_sOGRInfoInput_3.TransformPoint(transPoint_sOGRInfoInput_3,
                                                    coord_sOGRInfoInput_3.x, coord_sOGRInfoInput_3.y, 0);
                                            latlonXY_sOGRInfoInput_3.put(corner_sOGRInfoInput_3,
                                                    new com.vividsolutions.jts.geom.Coordinate(
                                                            transPoint_sOGRInfoInput_3[0],
                                                            transPoint_sOGRInfoInput_3[1]));
                                        }
                                    }
                                }
                                layerRow.driver = driver_sOGRInfoInput_3.getName();
                                layerRow.files = datasetName_sOGRInfoInput_3;
                                layerRow.layer_name = layerName_sOGRInfoInput_3;
                                layerRow.fid_column = fidColumn_sOGRInfoInput_3;
                                layerRow.geom_column = geomColumn_sOGRInfoInput_3;
                                layerRow.columns_def = columnsDef_sOGRInfoInput_3;
                                layerRow.geom_type = geomType_sOGRInfoInput_3;
                                layerRow.srs = srs_sOGRInfoInput_3;
                                layerRow.epsg_code = epsg_code_sOGRInfoInput_3;

                                // the geo extent (Polygon)
                                com.vividsolutions.jts.geom.Coordinate[] geoCoords_sOGRInfoInput_3 = new com.vividsolutions.jts.geom.Coordinate[5];
                                org.talend.sdi.geometry.Geometry geo_extent_sOGRInfoInput_3 = null;
                                if (!geoXY_sOGRInfoInput_3.isEmpty()) {
                                    try {
                                        geoCoords_sOGRInfoInput_3[0] = geoXY_sOGRInfoInput_3.get("upperLeft");
                                        geoCoords_sOGRInfoInput_3[1] = geoXY_sOGRInfoInput_3.get("lowerLeft");
                                        geoCoords_sOGRInfoInput_3[2] = geoXY_sOGRInfoInput_3.get("lowerRight");
                                        geoCoords_sOGRInfoInput_3[3] = geoXY_sOGRInfoInput_3.get("upperRight");
                                        geoCoords_sOGRInfoInput_3[4] = geoXY_sOGRInfoInput_3.get("upperLeft");

                                        geo_extent_sOGRInfoInput_3 = new org.talend.sdi.geometry.Geometry(
                                                (com.vividsolutions.jts.geom.Geometry) gFact_sOGRInfoInput_3
                                                        .createPolygon(gFact_sOGRInfoInput_3.createLinearRing(
                                                                geoCoords_sOGRInfoInput_3), null));
                                        if (crs_sOGRInfoInput_3 != null) {
                                            geo_extent_sOGRInfoInput_3.setCRS(crs_sOGRInfoInput_3);
                                        }
                                    } catch (Exception e) {
                                        nbErrors_sOGRInfoInput_3++;
                                        errors_sOGRInfoInput_3 += "\n" + e.getMessage();
                                        // TODO : catch error
                                        e.printStackTrace();
                                    }
                                }
                                layerRow.geo_extent = geo_extent_sOGRInfoInput_3;

                                // the lat/long extent (Polygon)
                                org.talend.sdi.geometry.Geometry latlon_extent_sOGRInfoInput_3 = null;
                                if (!latlonXY_sOGRInfoInput_3.isEmpty()) {
                                    try {
                                        com.vividsolutions.jts.geom.Coordinate[] latlonCoords_sOGRInfoInput_3 = new com.vividsolutions.jts.geom.Coordinate[5];
                                        latlonCoords_sOGRInfoInput_3[0] = latlonXY_sOGRInfoInput_3.get("upperLeft");
                                        latlonCoords_sOGRInfoInput_3[1] = latlonXY_sOGRInfoInput_3.get("lowerLeft");
                                        latlonCoords_sOGRInfoInput_3[2] = latlonXY_sOGRInfoInput_3
                                                .get("lowerRight");
                                        latlonCoords_sOGRInfoInput_3[3] = latlonXY_sOGRInfoInput_3
                                                .get("upperRight");
                                        latlonCoords_sOGRInfoInput_3[4] = latlonXY_sOGRInfoInput_3.get("upperLeft");

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

                                    } catch (Exception e) {
                                        nbErrors_sOGRInfoInput_3++;
                                        errors_sOGRInfoInput_3 += "\n" + e.getMessage();
                                        // TODO : catch error
                                        e.printStackTrace();
                                    }
                                }

                                layerRow.latlon_extent = latlon_extent_sOGRInfoInput_3;
                                layerRow.nb_features = nbFeatures_sOGRInfoInput_3;
                                layerRow.error = error_sOGRInfoInput_3;

                                /**
                                 * [sOGRInfoInput_3 begin ] stop
                                 */

                                /**
                                 * [sOGRInfoInput_3 main ] start
                                 */

                                currentComponent = "sOGRInfoInput_3";

                                tos_count_sOGRInfoInput_3++;

                                /**
                                 * [sOGRInfoInput_3 main ] stop
                                 */

                                /**
                                 * [tReplaceList_1 main ] start
                                 */

                                currentComponent = "tReplaceList_1";

                                String inputFlow_tReplaceList_1_geom_type = String.valueOf(layerRow.geom_type);

                                for (Object o : replace_tReplaceList_1.keySet()) {
                                    if (o.getClass().getSimpleName().equals("String")) {
                                        String searchtReplaceList_1 = String.valueOf(o);
                                        if (replace_tReplaceList_1.get(o).getClass().getSimpleName()
                                                .equals("String")) {
                                            String replacetReplaceList_1 = String
                                                    .valueOf(replace_tReplaceList_1.get(o));
                                            inputFlow_tReplaceList_1_geom_type = inputFlow_tReplaceList_1_geom_type
                                                    .replaceAll(searchtReplaceList_1, replacetReplaceList_1);
                                        }
                                    }
                                }
                                layerRow.geom_type = String.valueOf(inputFlow_tReplaceList_1_geom_type);

                                row1 = layerRow;

                                tos_count_tReplaceList_1++;

                                /**
                                 * [tReplaceList_1 main ] stop
                                 */

                                /**
                                 * [tLogRow_1 main ] start
                                 */

                                currentComponent = "tLogRow_1";

                                fromActualFile = row1;

                                tos_count_tLogRow_1++;

                                /**
                                 * [tLogRow_1 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 "metadataProperties"
                                // /////////////////////////////////////////////

                                boolean forceLoopmetadataProperties = false;

                                metadataPropertiesStruct metadataPropertiesObjectFromLookup = null;

                                if (!rejectedInnerJoin_tMap_1) { // G_TM_M_020

                                    tHash_Lookup_metadataProperties.lookup(metadataPropertiesHashKey);

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

                                        forceLoopmetadataProperties = true;

                                    } // G_TM_M_090

                                } // G_TM_M_020

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

                                metadataPropertiesStruct metadataProperties = null;

                                while ((tHash_Lookup_metadataProperties != null
                                        && tHash_Lookup_metadataProperties.hasNext())
                                        || forceLoopmetadataProperties) { // G_TM_M_043

                                    // CALL close loop of lookup
                                    // 'metadataProperties'

                                    metadataPropertiesStruct fromLookup_metadataProperties = null;
                                    metadataProperties = metadataPropertiesDefault;

                                    if (!forceLoopmetadataProperties) { // G 46

                                        fromLookup_metadataProperties = tHash_Lookup_metadataProperties.next();

                                        if (fromLookup_metadataProperties != null) {
                                            metadataProperties = fromLookup_metadataProperties;
                                        }

                                        if (!rejectedInnerJoin_tMap_1 &&

                                                !(

                                                "geo".equals(metadataProperties.dataType)

                                                )

                                        ) { // G 016

                                            fromLookup_metadataProperties = null;
                                            metadataProperties = metadataPropertiesDefault;

                                        } // G 016

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

                                            continue;

                                        } // G 017

                                    } // G 46

                                    forceLoopmetadataProperties = false;

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

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

                                        Var__tMap_1__Struct Var = Var__tMap_1;
                                        Var.dateStamp = TalendDate.formatDate("yyyy-MM-dd'T'HH:mm:ss",
                                                TalendDate.getCurrentDate());
                                        Var.srs = fromActualFile.epsg_code == -1 ? context.defaultProjection
                                                : "EPSG:" + fromActualFile.epsg_code;
                                        Var.title = context.titlePrefixVector + fromActualFile.layer_name;
                                        Var.west = fromActualFile.latlon_extent != null
                                                ? GeometryOperation.GETCOORDINATE(fromActualFile.latlon_extent, 0,
                                                        "X") + ""
                                                : (context.defaultProjection != null
                                                        && fromActualFile.geo_extent != null
                                                                ? GeometryOperation.GETCOORDINATE(GeometryOperation
                                                                        .PROJ(fromActualFile.geo_extent,
                                                                                context.defaultProjection,
                                                                                "EPSG:4326", false),
                                                                        0, "X") + ""
                                                                : context.defaultXMin);
                                        Var.east = fromActualFile.latlon_extent != null
                                                ? GeometryOperation.GETCOORDINATE(fromActualFile.latlon_extent, 2,
                                                        "X") + ""
                                                : (context.defaultProjection != null
                                                        && fromActualFile.geo_extent != null
                                                                ? GeometryOperation.GETCOORDINATE(GeometryOperation
                                                                        .PROJ(fromActualFile.geo_extent,
                                                                                context.defaultProjection,
                                                                                "EPSG:4326", false),
                                                                        2, "X") + ""
                                                                : context.defaultXMax);
                                        Var.south = fromActualFile.latlon_extent != null
                                                ? GeometryOperation.GETCOORDINATE(fromActualFile.latlon_extent, 2,
                                                        "Y") + ""
                                                : (context.defaultProjection != null
                                                        && fromActualFile.geo_extent != 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
                                                        && fromActualFile.geo_extent != null
                                                                ? GeometryOperation.GETCOORDINATE(GeometryOperation
                                                                        .PROJ(fromActualFile.geo_extent,
                                                                                context.defaultProjection,
                                                                                "EPSG:4326", false),
                                                                        0, "Y") + ""
                                                                : context.defaultYMax);
                                        Var.filepath = context.file;
                                        Var.filename = new java.io.File(context.file).getName();
                                        Var.uuidbase = Var.filename + "#" + fromActualFile.layer_name;
                                        Var.mdUuid = Utility.sha256Digest(Var.uuidbase);
                                        Var.fcatUuid = Utility.sha256Digest(Var.uuidbase + "#iso19319");
                                        Var.mdIndividualName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdIndividualName, metadataProperties.mdIndividualName);
                                        Var.mdOrganisation = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdOrganisation, metadataProperties.organisationName);
                                        Var.mdPositionName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdPositionName, metadataProperties.mdPositionName);
                                        Var.mdVoice = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdVoice, metadataProperties.mdVoice);
                                        Var.mdDeliveryPoint = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdDeliveryPoint, metadataProperties.mdDeliveryPoint);
                                        Var.mdCity = ExtractorStringUtils.returnFirstNotNullOrBlank(context.mdCity,
                                                metadataProperties.mdCity);
                                        Var.mdAdministrativeArea = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdAdministrativeArea,
                                                metadataProperties.mdAdministrativeArea);
                                        Var.mdPostalCode = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdPostalCode, metadataProperties.mdPostalCode);
                                        Var.mdCountry = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdCountry, metadataProperties.mdCountry);
                                        Var.mdEmail = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.mdEmail, metadataProperties.mdEmail);
                                        Var.individualName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.individualName, metadataProperties.individualName);
                                        Var.organisationName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.organisationName, metadataProperties.organisationName);
                                        Var.positionName = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.positionName, metadataProperties.positionName);
                                        Var.voice = ExtractorStringUtils.returnFirstNotNullOrBlank(context.voice,
                                                metadataProperties.voice);
                                        Var.deliveryPoint = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.deliveryPoint, metadataProperties.deliveryPoint);
                                        Var.city = ExtractorStringUtils.returnFirstNotNullOrBlank(context.city,
                                                metadataProperties.city);
                                        Var.administrativeArea = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.administrativeArea, metadataProperties.adminArea);
                                        Var.postalCode = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.postalCode, metadataProperties.postalCode);
                                        Var.country = ExtractorStringUtils.returnFirstNotNullOrBlank(
                                                context.country, metadataProperties.country);
                                        Var.email = ExtractorStringUtils.returnFirstNotNullOrBlank(context.email,
                                                metadataProperties.email);// ###############################
                                        // ###############################
                                        // # Output tables

                                        iso19115_3 = null;

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

                                    } // end of Var scope

                                    rejectedInnerJoin_tMap_1 = false;

                                    tos_count_tMap_1++;

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

                                        /**
                                         * [tNormalize_1 main ] start
                                         */

                                        currentComponent = "tNormalize_1";

                                        normalizeRecord_tNormalize_1 = new String[1];
                                        if (iso19115_3.columnsDef != null) {
                                            if ("".equals(iso19115_3.columnsDef)) {
                                                normalizeRecord_tNormalize_1[0] = "";
                                            } else {

                                                normalizeRecord_tNormalize_1 = iso19115_3.columnsDef.split("\\|",
                                                        -1);

                                            }
                                        }
                                        int lastNoEmptyIndex_tNormalize_1 = normalizeRecord_tNormalize_1.length;

                                        for (int i_tNormalize_1 = 0; i_tNormalize_1 < lastNoEmptyIndex_tNormalize_1; i_tNormalize_1++) {

                                            currentRecord_tNormalize_1 = new StringBuilder();
                                            nb_line_tNormalize_1++;

                                            row2.mdIdentifier = iso19115_3.mdIdentifier;

                                            row2.mdLanguage = iso19115_3.mdLanguage;

                                            row2.mdCharacterSetCode = iso19115_3.mdCharacterSetCode;

                                            row2.ciRoleCode = iso19115_3.ciRoleCode;

                                            row2.mdOrganisation = iso19115_3.mdOrganisation;

                                            row2.mdVoice = iso19115_3.mdVoice;

                                            row2.mdIndividualName = iso19115_3.mdIndividualName;

                                            row2.mdPositionName = iso19115_3.mdPositionName;

                                            row2.mdDeliveryPoint = iso19115_3.mdDeliveryPoint;

                                            row2.mdCity = iso19115_3.mdCity;

                                            row2.mdAdministrativeArea = iso19115_3.mdAdministrativeArea;

                                            row2.mdPostalCode = iso19115_3.mdPostalCode;

                                            row2.mdCountry = iso19115_3.mdCountry;

                                            row2.mdEmail = iso19115_3.mdEmail;

                                            row2.mdDate = iso19115_3.mdDate;

                                            row2.title = iso19115_3.title;

                                            row2.organisationName = iso19115_3.organisationName;

                                            row2.voice = iso19115_3.voice;

                                            row2.email = iso19115_3.email;

                                            row2.individualName = iso19115_3.individualName;

                                            row2.positionName = iso19115_3.positionName;

                                            row2.deliveryPoint = iso19115_3.deliveryPoint;

                                            row2.city = iso19115_3.city;

                                            row2.administrativeArea = iso19115_3.administrativeArea;

                                            row2.postalCode = iso19115_3.postalCode;

                                            row2.country = iso19115_3.country;

                                            row2.spatialRepresentationType = iso19115_3.spatialRepresentationType;

                                            row2.scaleDenominator = iso19115_3.scaleDenominator;

                                            row2.topicCategoryCode = iso19115_3.topicCategoryCode;

                                            row2.west = iso19115_3.west;

                                            row2.east = iso19115_3.east;

                                            row2.south = iso19115_3.south;

                                            row2.north = iso19115_3.north;

                                            row2.mdMaintenanceFrequencyCode = iso19115_3.mdMaintenanceFrequencyCode;

                                            row2.keyword = iso19115_3.keyword;

                                            row2.keyword2 = iso19115_3.keyword2;

                                            row2.keyword1_theme = iso19115_3.keyword1_theme;

                                            row2.keyword2_theme = iso19115_3.keyword2_theme;

                                            row2.useConstraints = iso19115_3.useConstraints;

                                            row2.scopeCode = iso19115_3.scopeCode;

                                            row2.lineage = iso19115_3.lineage;

                                            row2.srs = iso19115_3.srs;

                                            row2.layerName = iso19115_3.layerName;

                                            row2.columnsDef = normalizeRecord_tNormalize_1[i_tNormalize_1];

                                            row2.bands = iso19115_3.bands;

                                            tos_count_tNormalize_1++;

                                            /**
                                             * [tNormalize_1 main ] stop
                                             */

                                            /**
                                             * [tExtractDelimitedFields_3 main ]
                                             * start
                                             */

                                            currentComponent = "tExtractDelimitedFields_3";

                                            row4 = null;

                                            row4 = new row4Struct();
                                            String field_tExtractDelimitedFields_3 = row2.columnsDef;
                                            String[] newFields_tExtractDelimitedFields_3 = new String[0];
                                            if (field_tExtractDelimitedFields_3 != null) {// C_01
                                                try {
                                                    newFields_tExtractDelimitedFields_3 = field_tExtractDelimitedFields_3
                                                            .split("#", -1);
                                                    int length_tExtractDelimitedFields_3 = newFields_tExtractDelimitedFields_3.length;
                                                    for (int i_tExtractDelimitedFields_3 = 0; i_tExtractDelimitedFields_3 < length_tExtractDelimitedFields_3; i_tExtractDelimitedFields_3++) {
                                                        newFields_tExtractDelimitedFields_3[i_tExtractDelimitedFields_3] = newFields_tExtractDelimitedFields_3[i_tExtractDelimitedFields_3]
                                                                .trim();
                                                    }
                                                    row4.mdIdentifier = row2.mdIdentifier;
                                                    row4.mdLanguage = row2.mdLanguage;
                                                    row4.mdCharacterSetCode = row2.mdCharacterSetCode;
                                                    row4.ciRoleCode = row2.ciRoleCode;
                                                    row4.mdOrganisation = row2.mdOrganisation;
                                                    row4.mdVoice = row2.mdVoice;
                                                    row4.mdIndividualName = row2.mdIndividualName;
                                                    row4.mdPositionName = row2.mdPositionName;
                                                    row4.mdDeliveryPoint = row2.mdDeliveryPoint;
                                                    row4.mdCity = row2.mdCity;
                                                    row4.mdAdministrativeArea = row2.mdAdministrativeArea;
                                                    row4.mdPostalCode = row2.mdPostalCode;
                                                    row4.mdCountry = row2.mdCountry;
                                                    row4.mdEmail = row2.mdEmail;
                                                    row4.mdDate = row2.mdDate;
                                                    row4.title = row2.title;
                                                    row4.organisationName = row2.organisationName;
                                                    row4.voice = row2.voice;
                                                    row4.email = row2.email;
                                                    row4.individualName = row2.individualName;
                                                    row4.positionName = row2.positionName;
                                                    row4.deliveryPoint = row2.deliveryPoint;
                                                    row4.city = row2.city;
                                                    row4.administrativeArea = row2.administrativeArea;
                                                    row4.postalCode = row2.postalCode;
                                                    row4.country = row2.country;
                                                    row4.spatialRepresentationType = row2.spatialRepresentationType;
                                                    row4.scaleDenominator = row2.scaleDenominator;
                                                    row4.topicCategoryCode = row2.topicCategoryCode;
                                                    row4.west = row2.west;
                                                    row4.east = row2.east;
                                                    row4.south = row2.south;
                                                    row4.north = row2.north;
                                                    row4.mdMaintenanceFrequencyCode = row2.mdMaintenanceFrequencyCode;
                                                    row4.keyword = row2.keyword;
                                                    row4.keyword2 = row2.keyword2;
                                                    row4.keyword1_theme = row2.keyword1_theme;
                                                    row4.keyword2_theme = row2.keyword2_theme;
                                                    row4.useConstraints = row2.useConstraints;
                                                    row4.scopeCode = row2.scopeCode;
                                                    row4.lineage = row2.lineage;
                                                    row4.srs = row2.srs;
                                                    row4.layerName = row2.layerName;
                                                    row4.columnsDef = row2.columnsDef;
                                                    row4.bands = row2.bands;
                                                    String temp_tExtractDelimitedFields_3 = null;
                                                    row4.colName = 0 >= length_tExtractDelimitedFields_3 ? ""
                                                            : newFields_tExtractDelimitedFields_3[0];
                                                    row4.colType = 1 >= length_tExtractDelimitedFields_3 ? ""
                                                            : newFields_tExtractDelimitedFields_3[1];
                                                    row4.colPrecision = 2 >= length_tExtractDelimitedFields_3 ? ""
                                                            : newFields_tExtractDelimitedFields_3[2];
                                                    nb_line_tExtractDelimitedFields_3++;
                                                } catch (java.lang.Exception ex_tExtractDelimitedFields_3) {
                                                    System.err.println(ex_tExtractDelimitedFields_3.getMessage());
                                                    row4 = null;
                                                }

                                                tos_count_tExtractDelimitedFields_3++;

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

                                                    /**
                                                     * [tLogRow_2 main ] start
                                                     */

                                                    currentComponent = "tLogRow_2";

                                                    row3 = row4;

                                                    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",
                                                            (row4.mdIdentifier != null
                                                                    ? row4.mdIdentifier.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdLanguage",
                                                            (row4.mdLanguage != null ? row4.mdLanguage.toString()
                                                                    : "eng"));
                                                    valueMap_tAFOX_2.put("mdCharacterSetCode",
                                                            (row4.mdCharacterSetCode != null
                                                                    ? row4.mdCharacterSetCode.toString()
                                                                    : "utf-8"));
                                                    valueMap_tAFOX_2.put("ciRoleCode",
                                                            (row4.ciRoleCode != null ? row4.ciRoleCode.toString()
                                                                    : "pointOfContact"));
                                                    valueMap_tAFOX_2.put("mdOrganisation",
                                                            (row4.mdOrganisation != null
                                                                    ? row4.mdOrganisation.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdVoice",
                                                            (row4.mdVoice != null ? row4.mdVoice.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdIndividualName",
                                                            (row4.mdIndividualName != null
                                                                    ? row4.mdIndividualName.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdPositionName",
                                                            (row4.mdPositionName != null
                                                                    ? row4.mdPositionName.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdDeliveryPoint",
                                                            (row4.mdDeliveryPoint != null
                                                                    ? row4.mdDeliveryPoint.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdCity",
                                                            (row4.mdCity != null ? row4.mdCity.toString() : null));
                                                    valueMap_tAFOX_2.put("mdAdministrativeArea",
                                                            (row4.mdAdministrativeArea != null
                                                                    ? row4.mdAdministrativeArea.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdPostalCode",
                                                            (row4.mdPostalCode != null
                                                                    ? row4.mdPostalCode.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdCountry",
                                                            (row4.mdCountry != null ? row4.mdCountry.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdEmail",
                                                            (row4.mdEmail != null ? row4.mdEmail.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("mdDate",
                                                            (row4.mdDate != null ? row4.mdDate.toString() : null));
                                                    valueMap_tAFOX_2.put("title",
                                                            (row4.title != null ? row4.title.toString() : null));
                                                    valueMap_tAFOX_2.put("organisationName",
                                                            (row4.organisationName != null
                                                                    ? row4.organisationName.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("voice",
                                                            (row4.voice != null ? row4.voice.toString() : null));
                                                    valueMap_tAFOX_2.put("email",
                                                            (row4.email != null ? row4.email.toString() : null));
                                                    valueMap_tAFOX_2.put("individualName",
                                                            (row4.individualName != null
                                                                    ? row4.individualName.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("positionName",
                                                            (row4.positionName != null
                                                                    ? row4.positionName.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("deliveryPoint",
                                                            (row4.deliveryPoint != null
                                                                    ? row4.deliveryPoint.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("city",
                                                            (row4.city != null ? row4.city.toString() : null));
                                                    valueMap_tAFOX_2.put("administrativeArea",
                                                            (row4.administrativeArea != null
                                                                    ? row4.administrativeArea.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("postalCode",
                                                            (row4.postalCode != null ? row4.postalCode.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("country",
                                                            (row4.country != null ? row4.country.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("spatialRepresentationType",
                                                            (row4.spatialRepresentationType != null
                                                                    ? row4.spatialRepresentationType.toString()
                                                                    : "vector"));
                                                    valueMap_tAFOX_2.put("scaleDenominator",
                                                            (row4.scaleDenominator != null
                                                                    ? row4.scaleDenominator.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("topicCategoryCode",
                                                            (row4.topicCategoryCode != null
                                                                    ? row4.topicCategoryCode.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("west",
                                                            (row4.west != null ? row4.west.toString() : null));
                                                    valueMap_tAFOX_2.put("east",
                                                            (row4.east != null ? row4.east.toString() : null));
                                                    valueMap_tAFOX_2.put("south",
                                                            (row4.south != null ? row4.south.toString() : null));
                                                    valueMap_tAFOX_2.put("north",
                                                            (row4.north != null ? row4.north.toString() : null));
                                                    valueMap_tAFOX_2.put("mdMaintenanceFrequencyCode",
                                                            (row4.mdMaintenanceFrequencyCode != null
                                                                    ? row4.mdMaintenanceFrequencyCode.toString()
                                                                    : "asNeeded"));
                                                    valueMap_tAFOX_2.put("keyword",
                                                            (row4.keyword != null ? row4.keyword.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("keyword2",
                                                            (row4.keyword2 != null ? row4.keyword2.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("keyword1_theme",
                                                            (row4.keyword1_theme != null
                                                                    ? row4.keyword1_theme.toString()
                                                                    : "theme"));
                                                    valueMap_tAFOX_2.put("keyword2_theme",
                                                            (row4.keyword2_theme != null
                                                                    ? row4.keyword2_theme.toString()
                                                                    : "place"));
                                                    valueMap_tAFOX_2.put("useConstraints",
                                                            (row4.useConstraints != null
                                                                    ? row4.useConstraints.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("scopeCode",
                                                            (row4.scopeCode != null ? row4.scopeCode.toString()
                                                                    : "dataset"));
                                                    valueMap_tAFOX_2.put("lineage",
                                                            (row4.lineage != null ? row4.lineage.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("srs",
                                                            (row4.srs != null ? row4.srs.toString() : "WGS 1984"));
                                                    valueMap_tAFOX_2.put("layerName",
                                                            (row4.layerName != null ? row4.layerName.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("columnsDef",
                                                            (row4.columnsDef != null ? row4.columnsDef.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("bands",
                                                            (row4.bands != null ? row4.bands.toString() : null));
                                                    valueMap_tAFOX_2.put("colName",
                                                            (row4.colName != null ? row4.colName.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("colType",
                                                            (row4.colType != null ? row4.colType.toString()
                                                                    : null));
                                                    valueMap_tAFOX_2.put("colPrecision",
                                                            (row4.colPrecision != null
                                                                    ? row4.colPrecision.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("dqc",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19157/-2/dqc/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("gfc",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19110/gfc/1.1"));
                                                        root_tAFOX_2.addNamespace("gml",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://www.opengis.net/gml/3.2"));
                                                        root_tAFOX_2.addNamespace("gmw",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/gmw/1.0"));
                                                        root_tAFOX_2.addNamespace("lan",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/lan/1.0"));
                                                        root_tAFOX_2.addNamespace("mac",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/mac/1.0"));
                                                        root_tAFOX_2.addNamespace("mas",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/mas/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("mdq",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19157/-2/mdq/1.0"));
                                                        root_tAFOX_2.addNamespace("mex",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/mex/1.0"));
                                                        root_tAFOX_2.addNamespace("mmi",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/mmi/1.0"));
                                                        root_tAFOX_2.addNamespace("mpc",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/mpc/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("mrc",
                                                                TalendString.replaceSpecialCharForXML(
                                                                        "http://standards.iso.org/19115/-3/mrc/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("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");
                                                        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_FeatureCatalogue");
                                                        } else {
                                                            root_7_0_tAFOX_2 = root_7_tAFOX_2
                                                                    .addElement("mrc:MD_FeatureCatalogue");
                                                        }
                                                        root_7_0_tAFOX_2.setName("mrc:MD_FeatureCatalogue");
                                                        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("featureCatalogue");
                                                        } else {
                                                            root_7_0_0_tAFOX_2 = root_7_0_tAFOX_2
                                                                    .addElement("mrc:featureCatalogue");
                                                        }
                                                        root_7_0_0_tAFOX_2.setName("mrc:featureCatalogue");
                                                        org.dom4j.Element root_7_0_0_0_tAFOX_2;
                                                        if (root_7_0_0_tAFOX_2
                                                                .getNamespaceForPrefix("gfc") == null) {
                                                            root_7_0_0_0_tAFOX_2 = root_7_0_0_tAFOX_2
                                                                    .addElement("FC_FeatureCatalogue");
                                                        } else {
                                                            root_7_0_0_0_tAFOX_2 = root_7_0_0_tAFOX_2
                                                                    .addElement("gfc:FC_FeatureCatalogue");
                                                        }
                                                        root_7_0_0_0_tAFOX_2.setName("gfc:FC_FeatureCatalogue");
                                                        org.dom4j.Element root_7_0_0_0_0_tAFOX_2;
                                                        if (root_7_0_0_0_tAFOX_2
                                                                .getNamespaceForPrefix("gfc") == null) {
                                                            root_7_0_0_0_0_tAFOX_2 = root_7_0_0_0_tAFOX_2
                                                                    .addElement("producer");
                                                        } else {
                                                            root_7_0_0_0_0_tAFOX_2 = root_7_0_0_0_tAFOX_2
                                                                    .addElement("gfc:producer");
                                                        }
                                                        root_7_0_0_0_0_tAFOX_2.setName("gfc:producer");
                                                        org.dom4j.Element root_7_0_0_0_1_tAFOX_2;
                                                        if (root_7_0_0_0_tAFOX_2
                                                                .getNamespaceForPrefix("gfc") == null) {
                                                            root_7_0_0_0_1_tAFOX_2 = root_7_0_0_0_tAFOX_2
                                                                    .addElement("featureType");
                                                        } else {
                                                            root_7_0_0_0_1_tAFOX_2 = root_7_0_0_0_tAFOX_2
                                                                    .addElement("gfc:featureType");
                                                        }
                                                        root_7_0_0_0_1_tAFOX_2.setName("gfc:featureType");
                                                        org.dom4j.Element root_7_0_0_0_1_0_tAFOX_2;
                                                        if (root_7_0_0_0_1_tAFOX_2
                                                                .getNamespaceForPrefix("gfc") == null) {
                                                            root_7_0_0_0_1_0_tAFOX_2 = root_7_0_0_0_1_tAFOX_2
                                                                    .addElement("FC_FeatureType");
                                                        } else {
                                                            root_7_0_0_0_1_0_tAFOX_2 = root_7_0_0_0_1_tAFOX_2
                                                                    .addElement("gfc:FC_FeatureType");
                                                        }
                                                        subTreeRootParent_tAFOX_2 = root_7_0_0_0_1_0_tAFOX_2;
                                                        root_7_0_0_0_1_0_tAFOX_2.setName("gfc:FC_FeatureType");
                                                        org.dom4j.Element root_7_0_0_0_1_0_0_tAFOX_2;
                                                        if (root_7_0_0_0_1_0_tAFOX_2
                                                                .getNamespaceForPrefix("gfc") == null) {
                                                            root_7_0_0_0_1_0_0_tAFOX_2 = root_7_0_0_0_1_0_tAFOX_2
                                                                    .addElement("typeName");
                                                        } else {
                                                            root_7_0_0_0_1_0_0_tAFOX_2 = root_7_0_0_0_1_0_tAFOX_2
                                                                    .addElement("gfc:typeName");
                                                        }
                                                        if (valueMap_tAFOX_2.get("layerName") != null) {
                                                            nestXMLTool_tAFOX_2.setText(root_7_0_0_0_1_0_0_tAFOX_2,
                                                                    valueMap_tAFOX_2.get("layerName"));
                                                        }
                                                        root_7_0_0_0_1_0_0_tAFOX_2.setName("gfc:typeName");
                                                        org.dom4j.Element root_7_0_0_0_1_0_1_tAFOX_2;
                                                        if (root_7_0_0_0_1_0_tAFOX_2
                                                                .getNamespaceForPrefix("gfc") == null) {
                                                            root_7_0_0_0_1_0_1_tAFOX_2 = root_7_0_0_0_1_0_tAFOX_2
                                                                    .addElement("isAbstract");
                                                        } else {
                                                            root_7_0_0_0_1_0_1_tAFOX_2 = root_7_0_0_0_1_0_tAFOX_2
                                                                    .addElement("gfc:isAbstract");
                                                        }
                                                        root_7_0_0_0_1_0_1_tAFOX_2.setName("gfc:isAbstract");
                                                        org.dom4j.Element root_7_0_0_0_1_0_1_0_tAFOX_2;
                                                        if (root_7_0_0_0_1_0_1_tAFOX_2
                                                                .getNamespaceForPrefix("gco") == null) {
                                                            root_7_0_0_0_1_0_1_0_tAFOX_2 = root_7_0_0_0_1_0_1_tAFOX_2
                                                                    .addElement("Boolean");
                                                        } else {
                                                            root_7_0_0_0_1_0_1_0_tAFOX_2 = root_7_0_0_0_1_0_1_tAFOX_2
                                                                    .addElement("gco:Boolean");
                                                        }
                                                        nestXMLTool_tAFOX_2
                                                                .parseAndAdd(root_7_0_0_0_1_0_1_0_tAFOX_2, "false");

                                                        root_7_0_0_0_1_0_1_0_tAFOX_2.setName("gco:Boolean");
                                                        org.dom4j.Element root_7_0_0_0_1_0_2_tAFOX_2;
                                                        if (root_7_0_0_0_1_0_tAFOX_2
                                                                .getNamespaceForPrefix("gfc") == null) {
                                                            root_7_0_0_0_1_0_2_tAFOX_2 = root_7_0_0_0_1_0_tAFOX_2
                                                                    .addElement("featureCatalogue");
                                                        } else {
                                                            root_7_0_0_0_1_0_2_tAFOX_2 = root_7_0_0_0_1_0_tAFOX_2
                                                                    .addElement("gfc:featureCatalogue");
                                                        }
                                                        root_7_0_0_0_1_0_2_tAFOX_2.setName("gfc:featureCatalogue");
                                                        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("gfc") == null) {
                                                        loop_tAFOX_2 = org.dom4j.DocumentHelper
                                                                .createElement("carrierOfCharacteristics");
                                                    } else {
                                                        loop_tAFOX_2 = org.dom4j.DocumentHelper
                                                                .createElement("gfc:carrierOfCharacteristics");
                                                    }
                                                    if (orders_tAFOX_2[0] == 0) {
                                                        orders_tAFOX_2[0] = 2;
                                                    }
                                                    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("gfc:carrierOfCharacteristics");
                                                    org.dom4j.Element loop_0_tAFOX_2;
                                                    if (loop_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_tAFOX_2 = loop_tAFOX_2
                                                                .addElement("FC_FeatureAttribute");
                                                    } else {
                                                        loop_0_tAFOX_2 = loop_tAFOX_2
                                                                .addElement("gfc:FC_FeatureAttribute");
                                                    }
                                                    loop_0_tAFOX_2.setName("gfc:FC_FeatureAttribute");
                                                    org.dom4j.Element loop_0_0_tAFOX_2;
                                                    if (loop_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_0_tAFOX_2 = loop_0_tAFOX_2.addElement("featureType");
                                                    } else {
                                                        loop_0_0_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("gfc:featureType");
                                                    }
                                                    loop_0_0_tAFOX_2.setName("gfc:featureType");
                                                    org.dom4j.Element loop_0_0_0_tAFOX_2;
                                                    if (loop_0_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_0_0_tAFOX_2 = loop_0_0_tAFOX_2
                                                                .addElement("FC_FeatureType");
                                                    } else {
                                                        loop_0_0_0_tAFOX_2 = loop_0_0_tAFOX_2
                                                                .addElement("gfc:FC_FeatureType");
                                                    }
                                                    loop_0_0_0_tAFOX_2.setName("gfc:FC_FeatureType");
                                                    org.dom4j.Element loop_0_0_0_0_tAFOX_2;
                                                    if (loop_0_0_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_0_0_0_tAFOX_2 = loop_0_0_0_tAFOX_2
                                                                .addElement("typeName");
                                                    } else {
                                                        loop_0_0_0_0_tAFOX_2 = loop_0_0_0_tAFOX_2
                                                                .addElement("gfc:typeName");
                                                    }
                                                    loop_0_0_0_0_tAFOX_2.setName("gfc:typeName");
                                                    org.dom4j.Element loop_0_0_0_1_tAFOX_2;
                                                    if (loop_0_0_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_0_0_1_tAFOX_2 = loop_0_0_0_tAFOX_2
                                                                .addElement("definition");
                                                    } else {
                                                        loop_0_0_0_1_tAFOX_2 = loop_0_0_0_tAFOX_2
                                                                .addElement("gfc:definition");
                                                    }
                                                    loop_0_0_0_1_tAFOX_2.setName("gfc:definition");
                                                    org.dom4j.Element loop_0_0_0_1_0_tAFOX_2;
                                                    if (loop_0_0_0_1_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                        loop_0_0_0_1_0_tAFOX_2 = loop_0_0_0_1_tAFOX_2
                                                                .addElement("CharacterString");
                                                    } else {
                                                        loop_0_0_0_1_0_tAFOX_2 = loop_0_0_0_1_tAFOX_2
                                                                .addElement("gco:CharacterString");
                                                    }
                                                    if (valueMap_tAFOX_2.get("colType") != null) {
                                                        nestXMLTool_tAFOX_2.setText(loop_0_0_0_1_0_tAFOX_2,
                                                                valueMap_tAFOX_2.get("colType"));
                                                    }
                                                    loop_0_0_0_1_0_tAFOX_2.setName("gco:CharacterString");
                                                    org.dom4j.Element loop_0_0_0_2_tAFOX_2;
                                                    if (loop_0_0_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_0_0_2_tAFOX_2 = loop_0_0_0_tAFOX_2
                                                                .addElement("isAbstract");
                                                    } else {
                                                        loop_0_0_0_2_tAFOX_2 = loop_0_0_0_tAFOX_2
                                                                .addElement("gfc:isAbstract");
                                                    }
                                                    loop_0_0_0_2_tAFOX_2.setName("gfc:isAbstract");
                                                    org.dom4j.Element loop_0_0_0_2_0_tAFOX_2;
                                                    if (loop_0_0_0_2_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                        loop_0_0_0_2_0_tAFOX_2 = loop_0_0_0_2_tAFOX_2
                                                                .addElement("Boolean");
                                                    } else {
                                                        loop_0_0_0_2_0_tAFOX_2 = loop_0_0_0_2_tAFOX_2
                                                                .addElement("gco:Boolean");
                                                    }
                                                    nestXMLTool_tAFOX_2.parseAndAdd(loop_0_0_0_2_0_tAFOX_2,
                                                            "false");

                                                    loop_0_0_0_2_0_tAFOX_2.setName("gco:Boolean");
                                                    org.dom4j.Element loop_0_1_tAFOX_2;
                                                    if (loop_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_1_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("constrainedBy");
                                                    } else {
                                                        loop_0_1_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("gfc:constrainedBy");
                                                    }
                                                    loop_0_1_tAFOX_2.setName("gfc:constrainedBy");
                                                    org.dom4j.Element loop_0_1_0_tAFOX_2;
                                                    if (loop_0_1_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_1_0_tAFOX_2 = loop_0_1_tAFOX_2
                                                                .addElement("FC_Constraint");
                                                    } else {
                                                        loop_0_1_0_tAFOX_2 = loop_0_1_tAFOX_2
                                                                .addElement("gfc:FC_Constraint");
                                                    }
                                                    loop_0_1_0_tAFOX_2.setName("gfc:FC_Constraint");
                                                    org.dom4j.Element loop_0_1_0_0_tAFOX_2;
                                                    if (loop_0_1_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_1_0_0_tAFOX_2 = loop_0_1_0_tAFOX_2
                                                                .addElement("description");
                                                    } else {
                                                        loop_0_1_0_0_tAFOX_2 = loop_0_1_0_tAFOX_2
                                                                .addElement("gfc:description");
                                                    }
                                                    loop_0_1_0_0_tAFOX_2.addAttribute("gco:nilReason", "missing");
                                                    loop_0_1_0_0_tAFOX_2.setName("gfc:description");
                                                    org.dom4j.Element loop_0_2_tAFOX_2;
                                                    if (loop_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_2_tAFOX_2 = loop_0_tAFOX_2.addElement("memberName");
                                                    } else {
                                                        loop_0_2_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("gfc:memberName");
                                                    }
                                                    if (valueMap_tAFOX_2.get("colName") != null) {
                                                        nestXMLTool_tAFOX_2.setText(loop_0_2_tAFOX_2,
                                                                valueMap_tAFOX_2.get("colName"));
                                                    }
                                                    loop_0_2_tAFOX_2.setName("gfc:memberName");
                                                    org.dom4j.Element loop_0_3_tAFOX_2;
                                                    if (loop_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_3_tAFOX_2 = loop_0_tAFOX_2.addElement("definition");
                                                    } else {
                                                        loop_0_3_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("gfc:definition");
                                                    }
                                                    loop_0_3_tAFOX_2.setName("gfc:definition");
                                                    org.dom4j.Element loop_0_3_0_tAFOX_2;
                                                    if (loop_0_3_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                        loop_0_3_0_tAFOX_2 = loop_0_3_tAFOX_2
                                                                .addElement("CharacterString");
                                                    } else {
                                                        loop_0_3_0_tAFOX_2 = loop_0_3_tAFOX_2
                                                                .addElement("gco:CharacterString");
                                                    }
                                                    if (valueMap_tAFOX_2.get("colType") != null) {
                                                        nestXMLTool_tAFOX_2.setText(loop_0_3_0_tAFOX_2,
                                                                valueMap_tAFOX_2.get("colType"));
                                                    }
                                                    loop_0_3_0_tAFOX_2.setName("gco:CharacterString");
                                                    org.dom4j.Element loop_0_4_tAFOX_2;
                                                    if (loop_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_4_tAFOX_2 = loop_0_tAFOX_2.addElement("cardinality");
                                                    } else {
                                                        loop_0_4_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("gfc:cardinality");
                                                    }
                                                    loop_0_4_tAFOX_2.addAttribute("gco:nilReason", "missing");
                                                    loop_0_4_tAFOX_2.setName("gfc:cardinality");
                                                    org.dom4j.Element loop_0_4_0_tAFOX_2;
                                                    if (loop_0_4_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                        loop_0_4_0_tAFOX_2 = loop_0_4_tAFOX_2
                                                                .addElement("CharacterString");
                                                    } else {
                                                        loop_0_4_0_tAFOX_2 = loop_0_4_tAFOX_2
                                                                .addElement("gco:CharacterString");
                                                    }
                                                    loop_0_4_0_tAFOX_2.setName("gco:CharacterString");
                                                    org.dom4j.Element loop_0_5_tAFOX_2;
                                                    if (loop_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_5_tAFOX_2 = loop_0_tAFOX_2.addElement("valueType");
                                                    } else {
                                                        loop_0_5_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("gfc:valueType");
                                                    }
                                                    loop_0_5_tAFOX_2.setName("gfc:valueType");
                                                    org.dom4j.Element loop_0_5_0_tAFOX_2;
                                                    if (loop_0_5_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                        loop_0_5_0_tAFOX_2 = loop_0_5_tAFOX_2
                                                                .addElement("TypeName");
                                                    } else {
                                                        loop_0_5_0_tAFOX_2 = loop_0_5_tAFOX_2
                                                                .addElement("gco:TypeName");
                                                    }
                                                    loop_0_5_0_tAFOX_2.setName("gco:TypeName");
                                                    org.dom4j.Element loop_0_5_0_0_tAFOX_2;
                                                    if (loop_0_5_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                        loop_0_5_0_0_tAFOX_2 = loop_0_5_0_tAFOX_2
                                                                .addElement("aName");
                                                    } else {
                                                        loop_0_5_0_0_tAFOX_2 = loop_0_5_0_tAFOX_2
                                                                .addElement("gco:aName");
                                                    }
                                                    loop_0_5_0_0_tAFOX_2.setName("gco:aName");
                                                    org.dom4j.Element loop_0_5_0_0_0_tAFOX_2;
                                                    if (loop_0_5_0_0_tAFOX_2.getNamespaceForPrefix("gco") == null) {
                                                        loop_0_5_0_0_0_tAFOX_2 = loop_0_5_0_0_tAFOX_2
                                                                .addElement("CharacterString");
                                                    } else {
                                                        loop_0_5_0_0_0_tAFOX_2 = loop_0_5_0_0_tAFOX_2
                                                                .addElement("gco:CharacterString");
                                                    }
                                                    if (valueMap_tAFOX_2.get("colType") != null) {
                                                        nestXMLTool_tAFOX_2.setText(loop_0_5_0_0_0_tAFOX_2,
                                                                valueMap_tAFOX_2.get("colType"));
                                                    }
                                                    loop_0_5_0_0_0_tAFOX_2.setName("gco:CharacterString");
                                                    org.dom4j.Element loop_0_6_tAFOX_2;
                                                    if (loop_0_tAFOX_2.getNamespaceForPrefix("gfc") == null) {
                                                        loop_0_6_tAFOX_2 = loop_0_tAFOX_2.addElement("listedValue");
                                                    } else {
                                                        loop_0_6_tAFOX_2 = loop_0_tAFOX_2
                                                                .addElement("gfc:listedValue");
                                                    }
                                                    loop_0_6_tAFOX_2.setName("gfc:listedValue");

                                                    tos_count_tAdvancedFileOutputXML_2++;

                                                    /**
                                                     * [tAdvancedFileOutputXML_2
                                                     * main ] stop
                                                     */

                                                } // End of branch "row4"

                                            } // C_01

                                            // end for
                                        }

                                    } // End of branch "iso19115_3"

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

                                /**
                                 * [sOGRInfoInput_3 end ] start
                                 */

                                currentComponent = "sOGRInfoInput_3";

                                nb_line_sOGRInfoInput_3++;
                            }
                        }
                        // Delete current dataset
                        if (dataset_sOGRInfoInput_3 != null)
                            dataset_sOGRInfoInput_3.delete();

                        globalMap.put("sOGRInfoInput_3_NB_LINE", nb_line_sOGRInfoInput_3);
                        globalMap.put("sOGRInfoInput_3_NB_ERRORS", nbErrors_sOGRInfoInput_3);
                        globalMap.put("sOGRInfoInput_3_ERRORS", errors_sOGRInfoInput_3);

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

                        /**
                         * [sOGRInfoInput_3 end ] stop
                         */

                        /**
                         * [tReplaceList_1 end ] start
                         */

                        currentComponent = "tReplaceList_1";

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

                        /**
                         * [tReplaceList_1 end ] stop
                         */

                        /**
                         * [tLogRow_1 end ] start
                         */

                        currentComponent = "tLogRow_1";

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

                        /**
                         * [tLogRow_1 end ] stop
                         */

                        /**
                         * [tMap_1 end ] start
                         */

                        currentComponent = "tMap_1";

                        // ###############################
                        // # Lookup hashes releasing
                        // ###############################

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

                        /**
                         * [tMap_1 end ] stop
                         */

                        /**
                         * [tNormalize_1 end ] start
                         */

                        currentComponent = "tNormalize_1";

                        globalMap.put("tNormalize_1_NB_LINE", nb_line_tNormalize_1);

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

                        /**
                         * [tNormalize_1 end ] stop
                         */

                        /**
                         * [tExtractDelimitedFields_3 end ] start
                         */

                        currentComponent = "tExtractDelimitedFields_3";

                        globalMap.put("tExtractDelimitedFields_3_NB_LINE", nb_line_tExtractDelimitedFields_3);

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

                        /**
                         * [tExtractDelimitedFields_3 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
                         */

                        /**
                         * [sOGRInfoInput_1 end ] start
                         */

                        currentComponent = "sOGRInfoInput_1";

                        nb_line_sOGRInfoInput_1++;
                    }
                }
                // Delete current dataset
                if (dataset_sOGRInfoInput_1 != null)
                    dataset_sOGRInfoInput_1.delete();

                globalMap.put("sOGRInfoInput_1_NB_LINE", nb_line_sOGRInfoInput_1);
                globalMap.put("sOGRInfoInput_1_NB_ERRORS", nbErrors_sOGRInfoInput_1);
                globalMap.put("sOGRInfoInput_1_ERRORS", errors_sOGRInfoInput_1);

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

                /**
                 * [sOGRInfoInput_1 end ] stop
                 */

                /**
                 * [tFlowToIterate_1 end ] start
                 */

                currentComponent = "tFlowToIterate_1";

                globalMap.put("tFlowToIterate_1_NB_LINE", nb_line_tFlowToIterate_1);

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

                /**
                 * [tFlowToIterate_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 {

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

            // free memory for "tReplaceList_1"
            globalMap.remove("tHash_geometryType");

            try {

                /**
                 * [sOGRInfoInput_1 finally ] start
                 */

                currentComponent = "sOGRInfoInput_1";

                /**
                 * [sOGRInfoInput_1 finally ] stop
                 */

                /**
                 * [tFlowToIterate_1 finally ] start
                 */

                currentComponent = "tFlowToIterate_1";

                /**
                 * [tFlowToIterate_1 finally ] stop
                 */

                /**
                 * [sOGRInfoInput_3 finally ] start
                 */

                currentComponent = "sOGRInfoInput_3";

                /**
                 * [sOGRInfoInput_3 finally ] stop
                 */

                /**
                 * [tReplaceList_1 finally ] start
                 */

                currentComponent = "tReplaceList_1";

                /**
                 * [tReplaceList_1 finally ] stop
                 */

                /**
                 * [tLogRow_1 finally ] start
                 */

                currentComponent = "tLogRow_1";

                /**
                 * [tLogRow_1 finally ] stop
                 */

                /**
                 * [tMap_1 finally ] start
                 */

                currentComponent = "tMap_1";

                /**
                 * [tMap_1 finally ] stop
                 */

                /**
                 * [tNormalize_1 finally ] start
                 */

                currentComponent = "tNormalize_1";

                /**
                 * [tNormalize_1 finally ] stop
                 */

                /**
                 * [tExtractDelimitedFields_3 finally ] start
                 */

                currentComponent = "tExtractDelimitedFields_3";

                /**
                 * [tExtractDelimitedFields_3 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("sOGRInfoInput_1_SUBPROCESS_STATE", 1);
    }

    public static class geometryTypeStruct implements routines.system.IPersistableRow<geometryTypeStruct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = new byte[0];

        public String OGR_TYPE;

        public String getOGR_TYPE() {
            return this.OGR_TYPE;
        }

        public String ISO_TYPE;

        public String getISO_TYPE() {
            return this.ISO_TYPE;
        }

        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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                try {

                    int length = 0;

                    this.OGR_TYPE = readString(dis);

                    this.ISO_TYPE = readString(dis);

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

                }

            }

        }

        public void writeData(ObjectOutputStream dos) {
            try {

                // String

                writeString(this.OGR_TYPE, dos);

                // String

                writeString(this.ISO_TYPE, dos);

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

        }

        public String toString() {

            StringBuilder sb = new StringBuilder();
            sb.append(super.toString());
            sb.append("[");
            sb.append("OGR_TYPE=" + OGR_TYPE);
            sb.append(",ISO_TYPE=" + ISO_TYPE);
            sb.append("]");

            return sb.toString();
        }

        /**
         * Compare keys
         */
        public int compareTo(geometryTypeStruct 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;

                geometryTypeStruct geometryType = new geometryTypeStruct();

                /**
                 * [tHash_geometryType begin ] start
                 */

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

                currentComponent = "tHash_geometryType";

                int tos_count_tHash_geometryType = 0;

                java.util.Map<geometryTypeStruct, geometryTypeStruct> tHash_geometryType = new java.util.LinkedHashMap<geometryTypeStruct, geometryTypeStruct>();
                globalMap.put("tHash_geometryType", tHash_geometryType);

                /**
                 * [tHash_geometryType 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-geometry-type-mapping.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-geometry-type-mapping.csv", "US-ASCII", ";", "\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()) {

                        geometryType = null;

                        geometryType = null;

                        boolean whetherReject_tFileInputDelimited_1 = false;
                        geometryType = new geometryTypeStruct();
                        try {

                            int columnIndexWithD_tFileInputDelimited_1 = 0;

                            columnIndexWithD_tFileInputDelimited_1 = 0;

                            geometryType.OGR_TYPE = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

                            columnIndexWithD_tFileInputDelimited_1 = 1;

                            geometryType.ISO_TYPE = fid_tFileInputDelimited_1
                                    .get(columnIndexWithD_tFileInputDelimited_1);

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

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

                        }

                        /**
                         * [tFileInputDelimited_1 begin ] stop
                         */

                        /**
                         * [tFileInputDelimited_1 main ] start
                         */

                        currentComponent = "tFileInputDelimited_1";

                        tos_count_tFileInputDelimited_1++;

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

                            /**
                             * [tHash_geometryType main ] start
                             */

                            currentComponent = "tHash_geometryType";

                            geometryTypeStruct geometryType_HashRow = new geometryTypeStruct();

                            geometryType_HashRow.OGR_TYPE = geometryType.OGR_TYPE;
                            geometryType_HashRow.ISO_TYPE = geometryType.ISO_TYPE;
                            tHash_geometryType.put(geometryType_HashRow, geometryType_HashRow);

                            tos_count_tHash_geometryType++;

                            /**
                             * [tHash_geometryType main ] stop
                             */

                        } // End of branch "geometryType"

                        /**
                         * [tFileInputDelimited_1 end ] start
                         */

                        currentComponent = "tFileInputDelimited_1";

                    }
                } finally {
                    if (!((Object) (context.resourceDir
                            + "metadata-geometry-type-mapping.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
                 */

                /**
                 * [tHash_geometryType end ] start
                 */

                currentComponent = "tHash_geometryType";

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

                /**
                 * [tHash_geometryType 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
                 */

                /**
                 * [tHash_geometryType finally ] start
                 */

                currentComponent = "tHash_geometryType";

                /**
                 * [tHash_geometryType finally ] stop
                 */

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

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

    public static class metadataPropertiesStruct
            implements routines.system.IPersistableRow<metadataPropertiesStruct> {
        final static byte[] commonByteArrayLock_METADATA_GENERATOR_VectorJob = new byte[0];
        static byte[] commonByteArray_METADATA_GENERATOR_VectorJob = 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_VectorJob.length) {
                    if (length < 1024 && commonByteArray_METADATA_GENERATOR_VectorJob.length == 0) {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[1024];
                    } else {
                        commonByteArray_METADATA_GENERATOR_VectorJob = new byte[2 * length];
                    }
                }
                dis.readFully(commonByteArray_METADATA_GENERATOR_VectorJob, 0, length);
                strReturn = new String(commonByteArray_METADATA_GENERATOR_VectorJob, 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_VectorJob) {

                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(metadataPropertiesStruct 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_2Process(final java.util.Map<String, Object> globalMap) throws TalendException {
        globalMap.put("tFileInputDelimited_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;

                metadataPropertiesStruct metadataProperties = new metadataPropertiesStruct();

                /**
                 * [tAdvancedHash_metadataProperties begin ] start
                 */

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

                currentComponent = "tAdvancedHash_metadataProperties";

                int tos_count_tAdvancedHash_metadataProperties = 0;

                // connection name:metadataProperties
                // source node:tFileInputDelimited_2 -
                // inputs:(after_sOGRInfoInput_1)
                // outputs:(metadataProperties,metadataProperties) | target
                // node:tAdvancedHash_metadataProperties -
                // inputs:(metadataProperties) outputs:()
                // linked node: tMap_1 -
                // inputs:(fromActualFile,metadataProperties)
                // outputs:(iso19115_3)

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

                org.talend.designer.components.lookup.memory.AdvancedMemoryLookup<metadataPropertiesStruct> tHash_Lookup_metadataProperties = org.talend.designer.components.lookup.memory.AdvancedMemoryLookup
                        .<metadataPropertiesStruct>getLookup(matchingModeEnum_metadataProperties);

                globalMap.put("tHash_Lookup_metadataProperties", tHash_Lookup_metadataProperties);

                /**
                 * [tAdvancedHash_metadataProperties begin ] stop
                 */

                /**
                 * [tFileInputDelimited_2 begin ] start
                 */

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

                currentComponent = "tFileInputDelimited_2";

                int tos_count_tFileInputDelimited_2 = 0;

                int nb_line_tFileInputDelimited_2 = 0;
                org.talend.fileprocess.FileInputDelimited fid_tFileInputDelimited_2 = null;
                try {

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

                        int footer_value_tFileInputDelimited_2 = 0, random_value_tFileInputDelimited_2 = -1;
                        if (footer_value_tFileInputDelimited_2 > 0 || random_value_tFileInputDelimited_2 > 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_2 = 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_2 != null && fid_tFileInputDelimited_2.nextRecord()) {

                        metadataProperties = null;

                        metadataProperties = null;

                        boolean whetherReject_tFileInputDelimited_2 = false;
                        metadataProperties = new metadataPropertiesStruct();
                        try {

                            int columnIndexWithD_tFileInputDelimited_2 = 0;

                            columnIndexWithD_tFileInputDelimited_2 = 0;

                            metadataProperties.dataType = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 1;

                            metadataProperties.mdIndividualName = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 2;

                            metadataProperties.mdOrganisationName = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 3;

                            metadataProperties.mdPositionName = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 4;

                            metadataProperties.mdVoice = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 5;

                            metadataProperties.mdDeliveryPoint = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 6;

                            metadataProperties.mdCity = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 7;

                            metadataProperties.mdAdministrativeArea = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 8;

                            metadataProperties.mdPostalCode = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 9;

                            metadataProperties.mdCountry = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 10;

                            metadataProperties.mdEmail = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 11;

                            metadataProperties.mdRole = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 12;

                            metadataProperties.individualName = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 13;

                            metadataProperties.organisationName = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 14;

                            metadataProperties.positionName = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 15;

                            metadataProperties.voice = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 16;

                            metadataProperties.deliveryPoint = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 17;

                            metadataProperties.city = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 18;

                            metadataProperties.adminArea = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 19;

                            metadataProperties.postalCode = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 20;

                            metadataProperties.country = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 21;

                            metadataProperties.email = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 22;

                            metadataProperties.role = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 23;

                            metadataProperties.overviewUrlPrefix = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 24;

                            metadataProperties.keyword = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 25;

                            metadataProperties.keyword2 = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 26;

                            metadataProperties.geokeyword = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 27;

                            metadataProperties.accessConstraints = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 28;

                            metadataProperties.useConstraints = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 29;

                            metadataProperties.useConstraintsInfo = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 30;

                            metadataProperties.useLimitation = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 31;

                            metadataProperties.scaleDenominator = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 32;

                            metadataProperties.language = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 33;

                            metadataProperties.charset = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 34;

                            metadataProperties.topicCategoryCode = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 35;

                            metadataProperties.linkage1URL = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 36;

                            metadataProperties.linkage1protocol = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 37;

                            metadataProperties.linkage1name = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 38;

                            metadataProperties.linkage1description = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 39;

                            metadataProperties.lanFileDesc = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 40;

                            metadataProperties.lanFileProtocol = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 41;

                            metadataProperties.wmsUrl = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 42;

                            metadataProperties.wmsProtocol = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 43;

                            metadataProperties.wmsDesc = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

                            columnIndexWithD_tFileInputDelimited_2 = 44;

                            metadataProperties.mapFormat = fid_tFileInputDelimited_2
                                    .get(columnIndexWithD_tFileInputDelimited_2);

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

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

                        }

                        /**
                         * [tFileInputDelimited_2 begin ] stop
                         */

                        /**
                         * [tFileInputDelimited_2 main ] start
                         */

                        currentComponent = "tFileInputDelimited_2";

                        tos_count_tFileInputDelimited_2++;

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

                            /**
                             * [tAdvancedHash_metadataProperties main ] start
                             */

                            currentComponent = "tAdvancedHash_metadataProperties";

                            metadataPropertiesStruct metadataProperties_HashRow = new metadataPropertiesStruct();

                            metadataProperties_HashRow.dataType = metadataProperties.dataType;

                            metadataProperties_HashRow.mdIndividualName = metadataProperties.mdIndividualName;

                            metadataProperties_HashRow.mdOrganisationName = metadataProperties.mdOrganisationName;

                            metadataProperties_HashRow.mdPositionName = metadataProperties.mdPositionName;

                            metadataProperties_HashRow.mdVoice = metadataProperties.mdVoice;

                            metadataProperties_HashRow.mdDeliveryPoint = metadataProperties.mdDeliveryPoint;

                            metadataProperties_HashRow.mdCity = metadataProperties.mdCity;

                            metadataProperties_HashRow.mdAdministrativeArea = metadataProperties.mdAdministrativeArea;

                            metadataProperties_HashRow.mdPostalCode = metadataProperties.mdPostalCode;

                            metadataProperties_HashRow.mdCountry = metadataProperties.mdCountry;

                            metadataProperties_HashRow.mdEmail = metadataProperties.mdEmail;

                            metadataProperties_HashRow.mdRole = metadataProperties.mdRole;

                            metadataProperties_HashRow.individualName = metadataProperties.individualName;

                            metadataProperties_HashRow.organisationName = metadataProperties.organisationName;

                            metadataProperties_HashRow.positionName = metadataProperties.positionName;

                            metadataProperties_HashRow.voice = metadataProperties.voice;

                            metadataProperties_HashRow.deliveryPoint = metadataProperties.deliveryPoint;

                            metadataProperties_HashRow.city = metadataProperties.city;

                            metadataProperties_HashRow.adminArea = metadataProperties.adminArea;

                            metadataProperties_HashRow.postalCode = metadataProperties.postalCode;

                            metadataProperties_HashRow.country = metadataProperties.country;

                            metadataProperties_HashRow.email = metadataProperties.email;

                            metadataProperties_HashRow.role = metadataProperties.role;

                            metadataProperties_HashRow.overviewUrlPrefix = metadataProperties.overviewUrlPrefix;

                            metadataProperties_HashRow.keyword = metadataProperties.keyword;

                            metadataProperties_HashRow.keyword2 = metadataProperties.keyword2;

                            metadataProperties_HashRow.geokeyword = metadataProperties.geokeyword;

                            metadataProperties_HashRow.accessConstraints = metadataProperties.accessConstraints;

                            metadataProperties_HashRow.useConstraints = metadataProperties.useConstraints;

                            metadataProperties_HashRow.useConstraintsInfo = metadataProperties.useConstraintsInfo;

                            metadataProperties_HashRow.useLimitation = metadataProperties.useLimitation;

                            metadataProperties_HashRow.scaleDenominator = metadataProperties.scaleDenominator;

                            metadataProperties_HashRow.language = metadataProperties.language;

                            metadataProperties_HashRow.charset = metadataProperties.charset;

                            metadataProperties_HashRow.topicCategoryCode = metadataProperties.topicCategoryCode;

                            metadataProperties_HashRow.linkage1URL = metadataProperties.linkage1URL;

                            metadataProperties_HashRow.linkage1protocol = metadataProperties.linkage1protocol;

                            metadataProperties_HashRow.linkage1name = metadataProperties.linkage1name;

                            metadataProperties_HashRow.linkage1description = metadataProperties.linkage1description;

                            metadataProperties_HashRow.lanFileDesc = metadataProperties.lanFileDesc;

                            metadataProperties_HashRow.lanFileProtocol = metadataProperties.lanFileProtocol;

                            metadataProperties_HashRow.wmsUrl = metadataProperties.wmsUrl;

                            metadataProperties_HashRow.wmsProtocol = metadataProperties.wmsProtocol;

                            metadataProperties_HashRow.wmsDesc = metadataProperties.wmsDesc;

                            metadataProperties_HashRow.mapFormat = metadataProperties.mapFormat;

                            tHash_Lookup_metadataProperties.put(metadataProperties_HashRow);

                            tos_count_tAdvancedHash_metadataProperties++;

                            /**
                             * [tAdvancedHash_metadataProperties main ] stop
                             */

                        } // End of branch "metadataProperties"

                        /**
                         * [tFileInputDelimited_2 end ] start
                         */

                        currentComponent = "tFileInputDelimited_2";

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

                    }
                }

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

                /**
                 * [tFileInputDelimited_2 end ] stop
                 */

                /**
                 * [tAdvancedHash_metadataProperties end ] start
                 */

                currentComponent = "tAdvancedHash_metadataProperties";

                tHash_Lookup_metadataProperties.endPut();

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

                /**
                 * [tAdvancedHash_metadataProperties 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_2 finally ] start
                 */

                currentComponent = "tFileInputDelimited_2";

                /**
                 * [tFileInputDelimited_2 finally ] stop
                 */

                /**
                 * [tAdvancedHash_metadataProperties finally ] start
                 */

                currentComponent = "tAdvancedHash_metadataProperties";

                /**
                 * [tAdvancedHash_metadataProperties finally ] stop
                 */

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

        globalMap.put("tFileInputDelimited_2_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 VectorJob VectorJobClass = new VectorJob();

        int exitCode = VectorJobClass.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 = VectorJob.class.getClassLoader()
                    .getResourceAsStream("metadata_generator/vectorjob_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.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.file = (String) context.getProperty("file");
            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("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("file")) {
                context.file = (String) parentContextMap.get("file");
            }
            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;
            sOGRInfoInput_1Process(globalMap);
            if (!"failure".equals(status)) {
                status = "end";
            }
        } catch (TalendException e_sOGRInfoInput_1) {
            globalMap.put("sOGRInfoInput_1_SUBPROCESS_STATE", -1);

            e_sOGRInfoInput_1.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 : VectorJob");
        }

        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;
}
/************************************************************************************************
 * 376504 characters generated by Talend Open Studio for Data Integration on the
 * 21 de mayo de 2015 14:36:21 CEST
 ************************************************************************************************/