// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Datasource.proto

package eu.dnetlib.data.proto;

public final class DatasourceProtos {
  private DatasourceProtos() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface DatasourceOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional .eu.dnetlib.data.proto.Datasource.Metadata metadata = 2;
    boolean hasMetadata();
    eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata getMetadata();
    eu.dnetlib.data.proto.DatasourceProtos.Datasource.MetadataOrBuilder getMetadataOrBuilder();
  }
  public static final class Datasource extends
      com.google.protobuf.GeneratedMessage
      implements DatasourceOrBuilder {
    // Use Datasource.newBuilder() to construct.
    private Datasource(Builder builder) {
      super(builder);
    }
    private Datasource(boolean noInit) {}
    
    private static final Datasource defaultInstance;
    public static Datasource getDefaultInstance() {
      return defaultInstance;
    }
    
    public Datasource getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_fieldAccessorTable;
    }
    
    public interface MetadataOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // optional .eu.dnetlib.data.proto.Qualifier datasourcetype = 15;
      boolean hasDatasourcetype();
      eu.dnetlib.data.proto.FieldTypeProtos.Qualifier getDatasourcetype();
      eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder getDatasourcetypeOrBuilder();
      
      // optional .eu.dnetlib.data.proto.Qualifier openairecompatibility = 17;
      boolean hasOpenairecompatibility();
      eu.dnetlib.data.proto.FieldTypeProtos.Qualifier getOpenairecompatibility();
      eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder getOpenairecompatibilityOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField officialname = 1;
      boolean hasOfficialname();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getOfficialname();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOfficialnameOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField englishname = 2;
      boolean hasEnglishname();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getEnglishname();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getEnglishnameOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField websiteurl = 3;
      boolean hasWebsiteurl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getWebsiteurl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getWebsiteurlOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField logourl = 4;
      boolean hasLogourl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getLogourl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLogourlOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField contactemail = 5;
      boolean hasContactemail();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getContactemail();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getContactemailOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField namespaceprefix = 7;
      boolean hasNamespaceprefix();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getNamespaceprefix();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getNamespaceprefixOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField latitude = 18;
      boolean hasLatitude();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getLatitude();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLatitudeOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField longitude = 19;
      boolean hasLongitude();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getLongitude();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLongitudeOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField dateofvalidation = 20;
      boolean hasDateofvalidation();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getDateofvalidation();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDateofvalidationOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField description = 21;
      boolean hasDescription();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getDescription();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDescriptionOrBuilder();
      
      // repeated .eu.dnetlib.data.proto.StructuredProperty subjects = 45;
      java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty> 
          getSubjectsList();
      eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty getSubjects(int index);
      int getSubjectsCount();
      java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder> 
          getSubjectsOrBuilderList();
      eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder getSubjectsOrBuilder(
          int index);
      
      // optional .eu.dnetlib.data.proto.StringField odnumberofitems = 9;
      boolean hasOdnumberofitems();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdnumberofitems();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdnumberofitemsOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField odnumberofitemsdate = 10;
      boolean hasOdnumberofitemsdate();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdnumberofitemsdate();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdnumberofitemsdateOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField odpolicies = 12;
      boolean hasOdpolicies();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdpolicies();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdpoliciesOrBuilder();
      
      // repeated .eu.dnetlib.data.proto.StringField odlanguages = 13;
      java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> 
          getOdlanguagesList();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdlanguages(int index);
      int getOdlanguagesCount();
      java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
          getOdlanguagesOrBuilderList();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdlanguagesOrBuilder(
          int index);
      
      // repeated .eu.dnetlib.data.proto.StringField odcontenttypes = 14;
      java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> 
          getOdcontenttypesList();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdcontenttypes(int index);
      int getOdcontenttypesCount();
      java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
          getOdcontenttypesOrBuilderList();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdcontenttypesOrBuilder(
          int index);
      
      // repeated .eu.dnetlib.data.proto.StringField accessinfopackage = 6;
      java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> 
          getAccessinfopackageList();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getAccessinfopackage(int index);
      int getAccessinfopackageCount();
      java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
          getAccessinfopackageOrBuilderList();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getAccessinfopackageOrBuilder(
          int index);
      
      // optional .eu.dnetlib.data.proto.StringField releasestartdate = 31;
      boolean hasReleasestartdate();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getReleasestartdate();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getReleasestartdateOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField releaseenddate = 32;
      boolean hasReleaseenddate();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getReleaseenddate();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getReleaseenddateOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField missionstatementurl = 33;
      boolean hasMissionstatementurl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getMissionstatementurl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getMissionstatementurlOrBuilder();
      
      // optional .eu.dnetlib.data.proto.BoolField dataprovider = 34;
      boolean hasDataprovider();
      eu.dnetlib.data.proto.FieldTypeProtos.BoolField getDataprovider();
      eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getDataproviderOrBuilder();
      
      // optional .eu.dnetlib.data.proto.BoolField serviceprovider = 35;
      boolean hasServiceprovider();
      eu.dnetlib.data.proto.FieldTypeProtos.BoolField getServiceprovider();
      eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getServiceproviderOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField databaseaccesstype = 36;
      boolean hasDatabaseaccesstype();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatabaseaccesstype();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatabaseaccesstypeOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField datauploadtype = 37;
      boolean hasDatauploadtype();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatauploadtype();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatauploadtypeOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField databaseaccessrestriction = 38;
      boolean hasDatabaseaccessrestriction();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatabaseaccessrestriction();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatabaseaccessrestrictionOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField datauploadrestriction = 39;
      boolean hasDatauploadrestriction();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatauploadrestriction();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatauploadrestrictionOrBuilder();
      
      // optional .eu.dnetlib.data.proto.BoolField versioning = 40;
      boolean hasVersioning();
      eu.dnetlib.data.proto.FieldTypeProtos.BoolField getVersioning();
      eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getVersioningOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField citationguidelineurl = 41;
      boolean hasCitationguidelineurl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getCitationguidelineurl();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getCitationguidelineurlOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField qualitymanagementkind = 42;
      boolean hasQualitymanagementkind();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getQualitymanagementkind();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getQualitymanagementkindOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField pidsystems = 43;
      boolean hasPidsystems();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getPidsystems();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getPidsystemsOrBuilder();
      
      // optional .eu.dnetlib.data.proto.StringField certificates = 44;
      boolean hasCertificates();
      eu.dnetlib.data.proto.FieldTypeProtos.StringField getCertificates();
      eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getCertificatesOrBuilder();
      
      // repeated .eu.dnetlib.data.proto.KeyValue policies = 46;
      java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.KeyValue> 
          getPoliciesList();
      eu.dnetlib.data.proto.FieldTypeProtos.KeyValue getPolicies(int index);
      int getPoliciesCount();
      java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder> 
          getPoliciesOrBuilderList();
      eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder getPoliciesOrBuilder(
          int index);
    }
    public static final class Metadata extends
        com.google.protobuf.GeneratedMessage
        implements MetadataOrBuilder {
      // Use Metadata.newBuilder() to construct.
      private Metadata(Builder builder) {
        super(builder);
      }
      private Metadata(boolean noInit) {}
      
      private static final Metadata defaultInstance;
      public static Metadata getDefaultInstance() {
        return defaultInstance;
      }
      
      public Metadata getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_Metadata_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_Metadata_fieldAccessorTable;
      }
      
      private int bitField0_;
      // optional .eu.dnetlib.data.proto.Qualifier datasourcetype = 15;
      public static final int DATASOURCETYPE_FIELD_NUMBER = 15;
      private eu.dnetlib.data.proto.FieldTypeProtos.Qualifier datasourcetype_;
      public boolean hasDatasourcetype() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.Qualifier getDatasourcetype() {
        return datasourcetype_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder getDatasourcetypeOrBuilder() {
        return datasourcetype_;
      }
      
      // optional .eu.dnetlib.data.proto.Qualifier openairecompatibility = 17;
      public static final int OPENAIRECOMPATIBILITY_FIELD_NUMBER = 17;
      private eu.dnetlib.data.proto.FieldTypeProtos.Qualifier openairecompatibility_;
      public boolean hasOpenairecompatibility() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.Qualifier getOpenairecompatibility() {
        return openairecompatibility_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder getOpenairecompatibilityOrBuilder() {
        return openairecompatibility_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField officialname = 1;
      public static final int OFFICIALNAME_FIELD_NUMBER = 1;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField officialname_;
      public boolean hasOfficialname() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOfficialname() {
        return officialname_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOfficialnameOrBuilder() {
        return officialname_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField englishname = 2;
      public static final int ENGLISHNAME_FIELD_NUMBER = 2;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField englishname_;
      public boolean hasEnglishname() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getEnglishname() {
        return englishname_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getEnglishnameOrBuilder() {
        return englishname_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField websiteurl = 3;
      public static final int WEBSITEURL_FIELD_NUMBER = 3;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField websiteurl_;
      public boolean hasWebsiteurl() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getWebsiteurl() {
        return websiteurl_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getWebsiteurlOrBuilder() {
        return websiteurl_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField logourl = 4;
      public static final int LOGOURL_FIELD_NUMBER = 4;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField logourl_;
      public boolean hasLogourl() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getLogourl() {
        return logourl_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLogourlOrBuilder() {
        return logourl_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField contactemail = 5;
      public static final int CONTACTEMAIL_FIELD_NUMBER = 5;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField contactemail_;
      public boolean hasContactemail() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getContactemail() {
        return contactemail_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getContactemailOrBuilder() {
        return contactemail_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField namespaceprefix = 7;
      public static final int NAMESPACEPREFIX_FIELD_NUMBER = 7;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField namespaceprefix_;
      public boolean hasNamespaceprefix() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getNamespaceprefix() {
        return namespaceprefix_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getNamespaceprefixOrBuilder() {
        return namespaceprefix_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField latitude = 18;
      public static final int LATITUDE_FIELD_NUMBER = 18;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField latitude_;
      public boolean hasLatitude() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getLatitude() {
        return latitude_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLatitudeOrBuilder() {
        return latitude_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField longitude = 19;
      public static final int LONGITUDE_FIELD_NUMBER = 19;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField longitude_;
      public boolean hasLongitude() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getLongitude() {
        return longitude_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLongitudeOrBuilder() {
        return longitude_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField dateofvalidation = 20;
      public static final int DATEOFVALIDATION_FIELD_NUMBER = 20;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField dateofvalidation_;
      public boolean hasDateofvalidation() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDateofvalidation() {
        return dateofvalidation_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDateofvalidationOrBuilder() {
        return dateofvalidation_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField description = 21;
      public static final int DESCRIPTION_FIELD_NUMBER = 21;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField description_;
      public boolean hasDescription() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDescription() {
        return description_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDescriptionOrBuilder() {
        return description_;
      }
      
      // repeated .eu.dnetlib.data.proto.StructuredProperty subjects = 45;
      public static final int SUBJECTS_FIELD_NUMBER = 45;
      private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty> subjects_;
      public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty> getSubjectsList() {
        return subjects_;
      }
      public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder> 
          getSubjectsOrBuilderList() {
        return subjects_;
      }
      public int getSubjectsCount() {
        return subjects_.size();
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty getSubjects(int index) {
        return subjects_.get(index);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder getSubjectsOrBuilder(
          int index) {
        return subjects_.get(index);
      }
      
      // optional .eu.dnetlib.data.proto.StringField odnumberofitems = 9;
      public static final int ODNUMBEROFITEMS_FIELD_NUMBER = 9;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField odnumberofitems_;
      public boolean hasOdnumberofitems() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdnumberofitems() {
        return odnumberofitems_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdnumberofitemsOrBuilder() {
        return odnumberofitems_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField odnumberofitemsdate = 10;
      public static final int ODNUMBEROFITEMSDATE_FIELD_NUMBER = 10;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField odnumberofitemsdate_;
      public boolean hasOdnumberofitemsdate() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdnumberofitemsdate() {
        return odnumberofitemsdate_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdnumberofitemsdateOrBuilder() {
        return odnumberofitemsdate_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField odpolicies = 12;
      public static final int ODPOLICIES_FIELD_NUMBER = 12;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField odpolicies_;
      public boolean hasOdpolicies() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdpolicies() {
        return odpolicies_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdpoliciesOrBuilder() {
        return odpolicies_;
      }
      
      // repeated .eu.dnetlib.data.proto.StringField odlanguages = 13;
      public static final int ODLANGUAGES_FIELD_NUMBER = 13;
      private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> odlanguages_;
      public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> getOdlanguagesList() {
        return odlanguages_;
      }
      public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
          getOdlanguagesOrBuilderList() {
        return odlanguages_;
      }
      public int getOdlanguagesCount() {
        return odlanguages_.size();
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdlanguages(int index) {
        return odlanguages_.get(index);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdlanguagesOrBuilder(
          int index) {
        return odlanguages_.get(index);
      }
      
      // repeated .eu.dnetlib.data.proto.StringField odcontenttypes = 14;
      public static final int ODCONTENTTYPES_FIELD_NUMBER = 14;
      private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> odcontenttypes_;
      public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> getOdcontenttypesList() {
        return odcontenttypes_;
      }
      public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
          getOdcontenttypesOrBuilderList() {
        return odcontenttypes_;
      }
      public int getOdcontenttypesCount() {
        return odcontenttypes_.size();
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdcontenttypes(int index) {
        return odcontenttypes_.get(index);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdcontenttypesOrBuilder(
          int index) {
        return odcontenttypes_.get(index);
      }
      
      // repeated .eu.dnetlib.data.proto.StringField accessinfopackage = 6;
      public static final int ACCESSINFOPACKAGE_FIELD_NUMBER = 6;
      private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> accessinfopackage_;
      public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> getAccessinfopackageList() {
        return accessinfopackage_;
      }
      public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
          getAccessinfopackageOrBuilderList() {
        return accessinfopackage_;
      }
      public int getAccessinfopackageCount() {
        return accessinfopackage_.size();
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getAccessinfopackage(int index) {
        return accessinfopackage_.get(index);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getAccessinfopackageOrBuilder(
          int index) {
        return accessinfopackage_.get(index);
      }
      
      // optional .eu.dnetlib.data.proto.StringField releasestartdate = 31;
      public static final int RELEASESTARTDATE_FIELD_NUMBER = 31;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField releasestartdate_;
      public boolean hasReleasestartdate() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getReleasestartdate() {
        return releasestartdate_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getReleasestartdateOrBuilder() {
        return releasestartdate_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField releaseenddate = 32;
      public static final int RELEASEENDDATE_FIELD_NUMBER = 32;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField releaseenddate_;
      public boolean hasReleaseenddate() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getReleaseenddate() {
        return releaseenddate_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getReleaseenddateOrBuilder() {
        return releaseenddate_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField missionstatementurl = 33;
      public static final int MISSIONSTATEMENTURL_FIELD_NUMBER = 33;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField missionstatementurl_;
      public boolean hasMissionstatementurl() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getMissionstatementurl() {
        return missionstatementurl_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getMissionstatementurlOrBuilder() {
        return missionstatementurl_;
      }
      
      // optional .eu.dnetlib.data.proto.BoolField dataprovider = 34;
      public static final int DATAPROVIDER_FIELD_NUMBER = 34;
      private eu.dnetlib.data.proto.FieldTypeProtos.BoolField dataprovider_;
      public boolean hasDataprovider() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.BoolField getDataprovider() {
        return dataprovider_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getDataproviderOrBuilder() {
        return dataprovider_;
      }
      
      // optional .eu.dnetlib.data.proto.BoolField serviceprovider = 35;
      public static final int SERVICEPROVIDER_FIELD_NUMBER = 35;
      private eu.dnetlib.data.proto.FieldTypeProtos.BoolField serviceprovider_;
      public boolean hasServiceprovider() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.BoolField getServiceprovider() {
        return serviceprovider_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getServiceproviderOrBuilder() {
        return serviceprovider_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField databaseaccesstype = 36;
      public static final int DATABASEACCESSTYPE_FIELD_NUMBER = 36;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField databaseaccesstype_;
      public boolean hasDatabaseaccesstype() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatabaseaccesstype() {
        return databaseaccesstype_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatabaseaccesstypeOrBuilder() {
        return databaseaccesstype_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField datauploadtype = 37;
      public static final int DATAUPLOADTYPE_FIELD_NUMBER = 37;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField datauploadtype_;
      public boolean hasDatauploadtype() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatauploadtype() {
        return datauploadtype_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatauploadtypeOrBuilder() {
        return datauploadtype_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField databaseaccessrestriction = 38;
      public static final int DATABASEACCESSRESTRICTION_FIELD_NUMBER = 38;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField databaseaccessrestriction_;
      public boolean hasDatabaseaccessrestriction() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatabaseaccessrestriction() {
        return databaseaccessrestriction_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatabaseaccessrestrictionOrBuilder() {
        return databaseaccessrestriction_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField datauploadrestriction = 39;
      public static final int DATAUPLOADRESTRICTION_FIELD_NUMBER = 39;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField datauploadrestriction_;
      public boolean hasDatauploadrestriction() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatauploadrestriction() {
        return datauploadrestriction_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatauploadrestrictionOrBuilder() {
        return datauploadrestriction_;
      }
      
      // optional .eu.dnetlib.data.proto.BoolField versioning = 40;
      public static final int VERSIONING_FIELD_NUMBER = 40;
      private eu.dnetlib.data.proto.FieldTypeProtos.BoolField versioning_;
      public boolean hasVersioning() {
        return ((bitField0_ & 0x01000000) == 0x01000000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.BoolField getVersioning() {
        return versioning_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getVersioningOrBuilder() {
        return versioning_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField citationguidelineurl = 41;
      public static final int CITATIONGUIDELINEURL_FIELD_NUMBER = 41;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField citationguidelineurl_;
      public boolean hasCitationguidelineurl() {
        return ((bitField0_ & 0x02000000) == 0x02000000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getCitationguidelineurl() {
        return citationguidelineurl_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getCitationguidelineurlOrBuilder() {
        return citationguidelineurl_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField qualitymanagementkind = 42;
      public static final int QUALITYMANAGEMENTKIND_FIELD_NUMBER = 42;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField qualitymanagementkind_;
      public boolean hasQualitymanagementkind() {
        return ((bitField0_ & 0x04000000) == 0x04000000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getQualitymanagementkind() {
        return qualitymanagementkind_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getQualitymanagementkindOrBuilder() {
        return qualitymanagementkind_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField pidsystems = 43;
      public static final int PIDSYSTEMS_FIELD_NUMBER = 43;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField pidsystems_;
      public boolean hasPidsystems() {
        return ((bitField0_ & 0x08000000) == 0x08000000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getPidsystems() {
        return pidsystems_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getPidsystemsOrBuilder() {
        return pidsystems_;
      }
      
      // optional .eu.dnetlib.data.proto.StringField certificates = 44;
      public static final int CERTIFICATES_FIELD_NUMBER = 44;
      private eu.dnetlib.data.proto.FieldTypeProtos.StringField certificates_;
      public boolean hasCertificates() {
        return ((bitField0_ & 0x10000000) == 0x10000000);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringField getCertificates() {
        return certificates_;
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getCertificatesOrBuilder() {
        return certificates_;
      }
      
      // repeated .eu.dnetlib.data.proto.KeyValue policies = 46;
      public static final int POLICIES_FIELD_NUMBER = 46;
      private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.KeyValue> policies_;
      public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.KeyValue> getPoliciesList() {
        return policies_;
      }
      public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder> 
          getPoliciesOrBuilderList() {
        return policies_;
      }
      public int getPoliciesCount() {
        return policies_.size();
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.KeyValue getPolicies(int index) {
        return policies_.get(index);
      }
      public eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder getPoliciesOrBuilder(
          int index) {
        return policies_.get(index);
      }
      
      private void initFields() {
        datasourcetype_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
        openairecompatibility_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
        officialname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        englishname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        websiteurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        logourl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        contactemail_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        namespaceprefix_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        latitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        longitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        dateofvalidation_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        description_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        subjects_ = java.util.Collections.emptyList();
        odnumberofitems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        odnumberofitemsdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        odpolicies_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        odlanguages_ = java.util.Collections.emptyList();
        odcontenttypes_ = java.util.Collections.emptyList();
        accessinfopackage_ = java.util.Collections.emptyList();
        releasestartdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        releaseenddate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        missionstatementurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        dataprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
        serviceprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
        databaseaccesstype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        datauploadtype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        databaseaccessrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        datauploadrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        versioning_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
        citationguidelineurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        qualitymanagementkind_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        pidsystems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        certificates_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        policies_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (hasDatasourcetype()) {
          if (!getDatasourcetype().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasOpenairecompatibility()) {
          if (!getOpenairecompatibility().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasOfficialname()) {
          if (!getOfficialname().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasEnglishname()) {
          if (!getEnglishname().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasWebsiteurl()) {
          if (!getWebsiteurl().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasLogourl()) {
          if (!getLogourl().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasContactemail()) {
          if (!getContactemail().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasNamespaceprefix()) {
          if (!getNamespaceprefix().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasLatitude()) {
          if (!getLatitude().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasLongitude()) {
          if (!getLongitude().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDateofvalidation()) {
          if (!getDateofvalidation().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDescription()) {
          if (!getDescription().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getSubjectsCount(); i++) {
          if (!getSubjects(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasOdnumberofitems()) {
          if (!getOdnumberofitems().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasOdnumberofitemsdate()) {
          if (!getOdnumberofitemsdate().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasOdpolicies()) {
          if (!getOdpolicies().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getOdlanguagesCount(); i++) {
          if (!getOdlanguages(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getOdcontenttypesCount(); i++) {
          if (!getOdcontenttypes(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getAccessinfopackageCount(); i++) {
          if (!getAccessinfopackage(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasReleasestartdate()) {
          if (!getReleasestartdate().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasReleaseenddate()) {
          if (!getReleaseenddate().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasMissionstatementurl()) {
          if (!getMissionstatementurl().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDataprovider()) {
          if (!getDataprovider().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasServiceprovider()) {
          if (!getServiceprovider().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDatabaseaccesstype()) {
          if (!getDatabaseaccesstype().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDatauploadtype()) {
          if (!getDatauploadtype().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDatabaseaccessrestriction()) {
          if (!getDatabaseaccessrestriction().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDatauploadrestriction()) {
          if (!getDatauploadrestriction().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasVersioning()) {
          if (!getVersioning().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCitationguidelineurl()) {
          if (!getCitationguidelineurl().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasQualitymanagementkind()) {
          if (!getQualitymanagementkind().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasPidsystems()) {
          if (!getPidsystems().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCertificates()) {
          if (!getCertificates().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getPoliciesCount(); i++) {
          if (!getPolicies(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(1, officialname_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(2, englishname_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(3, websiteurl_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(4, logourl_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeMessage(5, contactemail_);
        }
        for (int i = 0; i < accessinfopackage_.size(); i++) {
          output.writeMessage(6, accessinfopackage_.get(i));
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeMessage(7, namespaceprefix_);
        }
        if (((bitField0_ & 0x00001000) == 0x00001000)) {
          output.writeMessage(9, odnumberofitems_);
        }
        if (((bitField0_ & 0x00002000) == 0x00002000)) {
          output.writeMessage(10, odnumberofitemsdate_);
        }
        if (((bitField0_ & 0x00004000) == 0x00004000)) {
          output.writeMessage(12, odpolicies_);
        }
        for (int i = 0; i < odlanguages_.size(); i++) {
          output.writeMessage(13, odlanguages_.get(i));
        }
        for (int i = 0; i < odcontenttypes_.size(); i++) {
          output.writeMessage(14, odcontenttypes_.get(i));
        }
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(15, datasourcetype_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(17, openairecompatibility_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeMessage(18, latitude_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          output.writeMessage(19, longitude_);
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          output.writeMessage(20, dateofvalidation_);
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          output.writeMessage(21, description_);
        }
        if (((bitField0_ & 0x00008000) == 0x00008000)) {
          output.writeMessage(31, releasestartdate_);
        }
        if (((bitField0_ & 0x00010000) == 0x00010000)) {
          output.writeMessage(32, releaseenddate_);
        }
        if (((bitField0_ & 0x00020000) == 0x00020000)) {
          output.writeMessage(33, missionstatementurl_);
        }
        if (((bitField0_ & 0x00040000) == 0x00040000)) {
          output.writeMessage(34, dataprovider_);
        }
        if (((bitField0_ & 0x00080000) == 0x00080000)) {
          output.writeMessage(35, serviceprovider_);
        }
        if (((bitField0_ & 0x00100000) == 0x00100000)) {
          output.writeMessage(36, databaseaccesstype_);
        }
        if (((bitField0_ & 0x00200000) == 0x00200000)) {
          output.writeMessage(37, datauploadtype_);
        }
        if (((bitField0_ & 0x00400000) == 0x00400000)) {
          output.writeMessage(38, databaseaccessrestriction_);
        }
        if (((bitField0_ & 0x00800000) == 0x00800000)) {
          output.writeMessage(39, datauploadrestriction_);
        }
        if (((bitField0_ & 0x01000000) == 0x01000000)) {
          output.writeMessage(40, versioning_);
        }
        if (((bitField0_ & 0x02000000) == 0x02000000)) {
          output.writeMessage(41, citationguidelineurl_);
        }
        if (((bitField0_ & 0x04000000) == 0x04000000)) {
          output.writeMessage(42, qualitymanagementkind_);
        }
        if (((bitField0_ & 0x08000000) == 0x08000000)) {
          output.writeMessage(43, pidsystems_);
        }
        if (((bitField0_ & 0x10000000) == 0x10000000)) {
          output.writeMessage(44, certificates_);
        }
        for (int i = 0; i < subjects_.size(); i++) {
          output.writeMessage(45, subjects_.get(i));
        }
        for (int i = 0; i < policies_.size(); i++) {
          output.writeMessage(46, policies_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, officialname_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, englishname_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, websiteurl_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, logourl_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, contactemail_);
        }
        for (int i = 0; i < accessinfopackage_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, accessinfopackage_.get(i));
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, namespaceprefix_);
        }
        if (((bitField0_ & 0x00001000) == 0x00001000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(9, odnumberofitems_);
        }
        if (((bitField0_ & 0x00002000) == 0x00002000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, odnumberofitemsdate_);
        }
        if (((bitField0_ & 0x00004000) == 0x00004000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(12, odpolicies_);
        }
        for (int i = 0; i < odlanguages_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(13, odlanguages_.get(i));
        }
        for (int i = 0; i < odcontenttypes_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(14, odcontenttypes_.get(i));
        }
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(15, datasourcetype_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(17, openairecompatibility_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(18, latitude_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(19, longitude_);
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(20, dateofvalidation_);
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(21, description_);
        }
        if (((bitField0_ & 0x00008000) == 0x00008000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(31, releasestartdate_);
        }
        if (((bitField0_ & 0x00010000) == 0x00010000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(32, releaseenddate_);
        }
        if (((bitField0_ & 0x00020000) == 0x00020000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(33, missionstatementurl_);
        }
        if (((bitField0_ & 0x00040000) == 0x00040000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(34, dataprovider_);
        }
        if (((bitField0_ & 0x00080000) == 0x00080000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(35, serviceprovider_);
        }
        if (((bitField0_ & 0x00100000) == 0x00100000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(36, databaseaccesstype_);
        }
        if (((bitField0_ & 0x00200000) == 0x00200000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(37, datauploadtype_);
        }
        if (((bitField0_ & 0x00400000) == 0x00400000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(38, databaseaccessrestriction_);
        }
        if (((bitField0_ & 0x00800000) == 0x00800000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(39, datauploadrestriction_);
        }
        if (((bitField0_ & 0x01000000) == 0x01000000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(40, versioning_);
        }
        if (((bitField0_ & 0x02000000) == 0x02000000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(41, citationguidelineurl_);
        }
        if (((bitField0_ & 0x04000000) == 0x04000000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(42, qualitymanagementkind_);
        }
        if (((bitField0_ & 0x08000000) == 0x08000000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(43, pidsystems_);
        }
        if (((bitField0_ & 0x10000000) == 0x10000000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(44, certificates_);
        }
        for (int i = 0; i < subjects_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(45, subjects_.get(i));
        }
        for (int i = 0; i < policies_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(46, policies_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements eu.dnetlib.data.proto.DatasourceProtos.Datasource.MetadataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_Metadata_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_Metadata_fieldAccessorTable;
        }
        
        // Construct using eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getDatasourcetypeFieldBuilder();
            getOpenairecompatibilityFieldBuilder();
            getOfficialnameFieldBuilder();
            getEnglishnameFieldBuilder();
            getWebsiteurlFieldBuilder();
            getLogourlFieldBuilder();
            getContactemailFieldBuilder();
            getNamespaceprefixFieldBuilder();
            getLatitudeFieldBuilder();
            getLongitudeFieldBuilder();
            getDateofvalidationFieldBuilder();
            getDescriptionFieldBuilder();
            getSubjectsFieldBuilder();
            getOdnumberofitemsFieldBuilder();
            getOdnumberofitemsdateFieldBuilder();
            getOdpoliciesFieldBuilder();
            getOdlanguagesFieldBuilder();
            getOdcontenttypesFieldBuilder();
            getAccessinfopackageFieldBuilder();
            getReleasestartdateFieldBuilder();
            getReleaseenddateFieldBuilder();
            getMissionstatementurlFieldBuilder();
            getDataproviderFieldBuilder();
            getServiceproviderFieldBuilder();
            getDatabaseaccesstypeFieldBuilder();
            getDatauploadtypeFieldBuilder();
            getDatabaseaccessrestrictionFieldBuilder();
            getDatauploadrestrictionFieldBuilder();
            getVersioningFieldBuilder();
            getCitationguidelineurlFieldBuilder();
            getQualitymanagementkindFieldBuilder();
            getPidsystemsFieldBuilder();
            getCertificatesFieldBuilder();
            getPoliciesFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          if (datasourcetypeBuilder_ == null) {
            datasourcetype_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
          } else {
            datasourcetypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          if (openairecompatibilityBuilder_ == null) {
            openairecompatibility_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
          } else {
            openairecompatibilityBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (officialnameBuilder_ == null) {
            officialname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            officialnameBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (englishnameBuilder_ == null) {
            englishname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            englishnameBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          if (websiteurlBuilder_ == null) {
            websiteurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            websiteurlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          if (logourlBuilder_ == null) {
            logourl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            logourlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          if (contactemailBuilder_ == null) {
            contactemail_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            contactemailBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          if (namespaceprefixBuilder_ == null) {
            namespaceprefix_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            namespaceprefixBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000080);
          if (latitudeBuilder_ == null) {
            latitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            latitudeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          if (longitudeBuilder_ == null) {
            longitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            longitudeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000200);
          if (dateofvalidationBuilder_ == null) {
            dateofvalidation_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            dateofvalidationBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000400);
          if (descriptionBuilder_ == null) {
            description_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            descriptionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000800);
          if (subjectsBuilder_ == null) {
            subjects_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00001000);
          } else {
            subjectsBuilder_.clear();
          }
          if (odnumberofitemsBuilder_ == null) {
            odnumberofitems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            odnumberofitemsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00002000);
          if (odnumberofitemsdateBuilder_ == null) {
            odnumberofitemsdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            odnumberofitemsdateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00004000);
          if (odpoliciesBuilder_ == null) {
            odpolicies_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            odpoliciesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00008000);
          if (odlanguagesBuilder_ == null) {
            odlanguages_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00010000);
          } else {
            odlanguagesBuilder_.clear();
          }
          if (odcontenttypesBuilder_ == null) {
            odcontenttypes_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00020000);
          } else {
            odcontenttypesBuilder_.clear();
          }
          if (accessinfopackageBuilder_ == null) {
            accessinfopackage_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00040000);
          } else {
            accessinfopackageBuilder_.clear();
          }
          if (releasestartdateBuilder_ == null) {
            releasestartdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            releasestartdateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00080000);
          if (releaseenddateBuilder_ == null) {
            releaseenddate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            releaseenddateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00100000);
          if (missionstatementurlBuilder_ == null) {
            missionstatementurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            missionstatementurlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00200000);
          if (dataproviderBuilder_ == null) {
            dataprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
          } else {
            dataproviderBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00400000);
          if (serviceproviderBuilder_ == null) {
            serviceprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
          } else {
            serviceproviderBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00800000);
          if (databaseaccesstypeBuilder_ == null) {
            databaseaccesstype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            databaseaccesstypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x01000000);
          if (datauploadtypeBuilder_ == null) {
            datauploadtype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            datauploadtypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x02000000);
          if (databaseaccessrestrictionBuilder_ == null) {
            databaseaccessrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            databaseaccessrestrictionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x04000000);
          if (datauploadrestrictionBuilder_ == null) {
            datauploadrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            datauploadrestrictionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x08000000);
          if (versioningBuilder_ == null) {
            versioning_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
          } else {
            versioningBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x10000000);
          if (citationguidelineurlBuilder_ == null) {
            citationguidelineurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            citationguidelineurlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x20000000);
          if (qualitymanagementkindBuilder_ == null) {
            qualitymanagementkind_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            qualitymanagementkindBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x40000000);
          if (pidsystemsBuilder_ == null) {
            pidsystems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            pidsystemsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x80000000);
          if (certificatesBuilder_ == null) {
            certificates_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
          } else {
            certificatesBuilder_.clear();
          }
          bitField1_ = (bitField1_ & ~0x00000001);
          if (policiesBuilder_ == null) {
            policies_ = java.util.Collections.emptyList();
            bitField1_ = (bitField1_ & ~0x00000002);
          } else {
            policiesBuilder_.clear();
          }
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDescriptor();
        }
        
        public eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata getDefaultInstanceForType() {
          return eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDefaultInstance();
        }
        
        public eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata build() {
          eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata buildPartial() {
          eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata result = new eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata(this);
          int from_bitField0_ = bitField0_;
          int from_bitField1_ = bitField1_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (datasourcetypeBuilder_ == null) {
            result.datasourcetype_ = datasourcetype_;
          } else {
            result.datasourcetype_ = datasourcetypeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (openairecompatibilityBuilder_ == null) {
            result.openairecompatibility_ = openairecompatibility_;
          } else {
            result.openairecompatibility_ = openairecompatibilityBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (officialnameBuilder_ == null) {
            result.officialname_ = officialname_;
          } else {
            result.officialname_ = officialnameBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (englishnameBuilder_ == null) {
            result.englishname_ = englishname_;
          } else {
            result.englishname_ = englishnameBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (websiteurlBuilder_ == null) {
            result.websiteurl_ = websiteurl_;
          } else {
            result.websiteurl_ = websiteurlBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          if (logourlBuilder_ == null) {
            result.logourl_ = logourl_;
          } else {
            result.logourl_ = logourlBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          if (contactemailBuilder_ == null) {
            result.contactemail_ = contactemail_;
          } else {
            result.contactemail_ = contactemailBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000080;
          }
          if (namespaceprefixBuilder_ == null) {
            result.namespaceprefix_ = namespaceprefix_;
          } else {
            result.namespaceprefix_ = namespaceprefixBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000100;
          }
          if (latitudeBuilder_ == null) {
            result.latitude_ = latitude_;
          } else {
            result.latitude_ = latitudeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
            to_bitField0_ |= 0x00000200;
          }
          if (longitudeBuilder_ == null) {
            result.longitude_ = longitude_;
          } else {
            result.longitude_ = longitudeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
            to_bitField0_ |= 0x00000400;
          }
          if (dateofvalidationBuilder_ == null) {
            result.dateofvalidation_ = dateofvalidation_;
          } else {
            result.dateofvalidation_ = dateofvalidationBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
            to_bitField0_ |= 0x00000800;
          }
          if (descriptionBuilder_ == null) {
            result.description_ = description_;
          } else {
            result.description_ = descriptionBuilder_.build();
          }
          if (subjectsBuilder_ == null) {
            if (((bitField0_ & 0x00001000) == 0x00001000)) {
              subjects_ = java.util.Collections.unmodifiableList(subjects_);
              bitField0_ = (bitField0_ & ~0x00001000);
            }
            result.subjects_ = subjects_;
          } else {
            result.subjects_ = subjectsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
            to_bitField0_ |= 0x00001000;
          }
          if (odnumberofitemsBuilder_ == null) {
            result.odnumberofitems_ = odnumberofitems_;
          } else {
            result.odnumberofitems_ = odnumberofitemsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
            to_bitField0_ |= 0x00002000;
          }
          if (odnumberofitemsdateBuilder_ == null) {
            result.odnumberofitemsdate_ = odnumberofitemsdate_;
          } else {
            result.odnumberofitemsdate_ = odnumberofitemsdateBuilder_.build();
          }
          if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
            to_bitField0_ |= 0x00004000;
          }
          if (odpoliciesBuilder_ == null) {
            result.odpolicies_ = odpolicies_;
          } else {
            result.odpolicies_ = odpoliciesBuilder_.build();
          }
          if (odlanguagesBuilder_ == null) {
            if (((bitField0_ & 0x00010000) == 0x00010000)) {
              odlanguages_ = java.util.Collections.unmodifiableList(odlanguages_);
              bitField0_ = (bitField0_ & ~0x00010000);
            }
            result.odlanguages_ = odlanguages_;
          } else {
            result.odlanguages_ = odlanguagesBuilder_.build();
          }
          if (odcontenttypesBuilder_ == null) {
            if (((bitField0_ & 0x00020000) == 0x00020000)) {
              odcontenttypes_ = java.util.Collections.unmodifiableList(odcontenttypes_);
              bitField0_ = (bitField0_ & ~0x00020000);
            }
            result.odcontenttypes_ = odcontenttypes_;
          } else {
            result.odcontenttypes_ = odcontenttypesBuilder_.build();
          }
          if (accessinfopackageBuilder_ == null) {
            if (((bitField0_ & 0x00040000) == 0x00040000)) {
              accessinfopackage_ = java.util.Collections.unmodifiableList(accessinfopackage_);
              bitField0_ = (bitField0_ & ~0x00040000);
            }
            result.accessinfopackage_ = accessinfopackage_;
          } else {
            result.accessinfopackage_ = accessinfopackageBuilder_.build();
          }
          if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
            to_bitField0_ |= 0x00008000;
          }
          if (releasestartdateBuilder_ == null) {
            result.releasestartdate_ = releasestartdate_;
          } else {
            result.releasestartdate_ = releasestartdateBuilder_.build();
          }
          if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
            to_bitField0_ |= 0x00010000;
          }
          if (releaseenddateBuilder_ == null) {
            result.releaseenddate_ = releaseenddate_;
          } else {
            result.releaseenddate_ = releaseenddateBuilder_.build();
          }
          if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
            to_bitField0_ |= 0x00020000;
          }
          if (missionstatementurlBuilder_ == null) {
            result.missionstatementurl_ = missionstatementurl_;
          } else {
            result.missionstatementurl_ = missionstatementurlBuilder_.build();
          }
          if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
            to_bitField0_ |= 0x00040000;
          }
          if (dataproviderBuilder_ == null) {
            result.dataprovider_ = dataprovider_;
          } else {
            result.dataprovider_ = dataproviderBuilder_.build();
          }
          if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
            to_bitField0_ |= 0x00080000;
          }
          if (serviceproviderBuilder_ == null) {
            result.serviceprovider_ = serviceprovider_;
          } else {
            result.serviceprovider_ = serviceproviderBuilder_.build();
          }
          if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
            to_bitField0_ |= 0x00100000;
          }
          if (databaseaccesstypeBuilder_ == null) {
            result.databaseaccesstype_ = databaseaccesstype_;
          } else {
            result.databaseaccesstype_ = databaseaccesstypeBuilder_.build();
          }
          if (((from_bitField0_ & 0x02000000) == 0x02000000)) {
            to_bitField0_ |= 0x00200000;
          }
          if (datauploadtypeBuilder_ == null) {
            result.datauploadtype_ = datauploadtype_;
          } else {
            result.datauploadtype_ = datauploadtypeBuilder_.build();
          }
          if (((from_bitField0_ & 0x04000000) == 0x04000000)) {
            to_bitField0_ |= 0x00400000;
          }
          if (databaseaccessrestrictionBuilder_ == null) {
            result.databaseaccessrestriction_ = databaseaccessrestriction_;
          } else {
            result.databaseaccessrestriction_ = databaseaccessrestrictionBuilder_.build();
          }
          if (((from_bitField0_ & 0x08000000) == 0x08000000)) {
            to_bitField0_ |= 0x00800000;
          }
          if (datauploadrestrictionBuilder_ == null) {
            result.datauploadrestriction_ = datauploadrestriction_;
          } else {
            result.datauploadrestriction_ = datauploadrestrictionBuilder_.build();
          }
          if (((from_bitField0_ & 0x10000000) == 0x10000000)) {
            to_bitField0_ |= 0x01000000;
          }
          if (versioningBuilder_ == null) {
            result.versioning_ = versioning_;
          } else {
            result.versioning_ = versioningBuilder_.build();
          }
          if (((from_bitField0_ & 0x20000000) == 0x20000000)) {
            to_bitField0_ |= 0x02000000;
          }
          if (citationguidelineurlBuilder_ == null) {
            result.citationguidelineurl_ = citationguidelineurl_;
          } else {
            result.citationguidelineurl_ = citationguidelineurlBuilder_.build();
          }
          if (((from_bitField0_ & 0x40000000) == 0x40000000)) {
            to_bitField0_ |= 0x04000000;
          }
          if (qualitymanagementkindBuilder_ == null) {
            result.qualitymanagementkind_ = qualitymanagementkind_;
          } else {
            result.qualitymanagementkind_ = qualitymanagementkindBuilder_.build();
          }
          if (((from_bitField0_ & 0x80000000) == 0x80000000)) {
            to_bitField0_ |= 0x08000000;
          }
          if (pidsystemsBuilder_ == null) {
            result.pidsystems_ = pidsystems_;
          } else {
            result.pidsystems_ = pidsystemsBuilder_.build();
          }
          if (((from_bitField1_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x10000000;
          }
          if (certificatesBuilder_ == null) {
            result.certificates_ = certificates_;
          } else {
            result.certificates_ = certificatesBuilder_.build();
          }
          if (policiesBuilder_ == null) {
            if (((bitField1_ & 0x00000002) == 0x00000002)) {
              policies_ = java.util.Collections.unmodifiableList(policies_);
              bitField1_ = (bitField1_ & ~0x00000002);
            }
            result.policies_ = policies_;
          } else {
            result.policies_ = policiesBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata) {
            return mergeFrom((eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata other) {
          if (other == eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDefaultInstance()) return this;
          if (other.hasDatasourcetype()) {
            mergeDatasourcetype(other.getDatasourcetype());
          }
          if (other.hasOpenairecompatibility()) {
            mergeOpenairecompatibility(other.getOpenairecompatibility());
          }
          if (other.hasOfficialname()) {
            mergeOfficialname(other.getOfficialname());
          }
          if (other.hasEnglishname()) {
            mergeEnglishname(other.getEnglishname());
          }
          if (other.hasWebsiteurl()) {
            mergeWebsiteurl(other.getWebsiteurl());
          }
          if (other.hasLogourl()) {
            mergeLogourl(other.getLogourl());
          }
          if (other.hasContactemail()) {
            mergeContactemail(other.getContactemail());
          }
          if (other.hasNamespaceprefix()) {
            mergeNamespaceprefix(other.getNamespaceprefix());
          }
          if (other.hasLatitude()) {
            mergeLatitude(other.getLatitude());
          }
          if (other.hasLongitude()) {
            mergeLongitude(other.getLongitude());
          }
          if (other.hasDateofvalidation()) {
            mergeDateofvalidation(other.getDateofvalidation());
          }
          if (other.hasDescription()) {
            mergeDescription(other.getDescription());
          }
          if (subjectsBuilder_ == null) {
            if (!other.subjects_.isEmpty()) {
              if (subjects_.isEmpty()) {
                subjects_ = other.subjects_;
                bitField0_ = (bitField0_ & ~0x00001000);
              } else {
                ensureSubjectsIsMutable();
                subjects_.addAll(other.subjects_);
              }
              onChanged();
            }
          } else {
            if (!other.subjects_.isEmpty()) {
              if (subjectsBuilder_.isEmpty()) {
                subjectsBuilder_.dispose();
                subjectsBuilder_ = null;
                subjects_ = other.subjects_;
                bitField0_ = (bitField0_ & ~0x00001000);
                subjectsBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getSubjectsFieldBuilder() : null;
              } else {
                subjectsBuilder_.addAllMessages(other.subjects_);
              }
            }
          }
          if (other.hasOdnumberofitems()) {
            mergeOdnumberofitems(other.getOdnumberofitems());
          }
          if (other.hasOdnumberofitemsdate()) {
            mergeOdnumberofitemsdate(other.getOdnumberofitemsdate());
          }
          if (other.hasOdpolicies()) {
            mergeOdpolicies(other.getOdpolicies());
          }
          if (odlanguagesBuilder_ == null) {
            if (!other.odlanguages_.isEmpty()) {
              if (odlanguages_.isEmpty()) {
                odlanguages_ = other.odlanguages_;
                bitField0_ = (bitField0_ & ~0x00010000);
              } else {
                ensureOdlanguagesIsMutable();
                odlanguages_.addAll(other.odlanguages_);
              }
              onChanged();
            }
          } else {
            if (!other.odlanguages_.isEmpty()) {
              if (odlanguagesBuilder_.isEmpty()) {
                odlanguagesBuilder_.dispose();
                odlanguagesBuilder_ = null;
                odlanguages_ = other.odlanguages_;
                bitField0_ = (bitField0_ & ~0x00010000);
                odlanguagesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getOdlanguagesFieldBuilder() : null;
              } else {
                odlanguagesBuilder_.addAllMessages(other.odlanguages_);
              }
            }
          }
          if (odcontenttypesBuilder_ == null) {
            if (!other.odcontenttypes_.isEmpty()) {
              if (odcontenttypes_.isEmpty()) {
                odcontenttypes_ = other.odcontenttypes_;
                bitField0_ = (bitField0_ & ~0x00020000);
              } else {
                ensureOdcontenttypesIsMutable();
                odcontenttypes_.addAll(other.odcontenttypes_);
              }
              onChanged();
            }
          } else {
            if (!other.odcontenttypes_.isEmpty()) {
              if (odcontenttypesBuilder_.isEmpty()) {
                odcontenttypesBuilder_.dispose();
                odcontenttypesBuilder_ = null;
                odcontenttypes_ = other.odcontenttypes_;
                bitField0_ = (bitField0_ & ~0x00020000);
                odcontenttypesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getOdcontenttypesFieldBuilder() : null;
              } else {
                odcontenttypesBuilder_.addAllMessages(other.odcontenttypes_);
              }
            }
          }
          if (accessinfopackageBuilder_ == null) {
            if (!other.accessinfopackage_.isEmpty()) {
              if (accessinfopackage_.isEmpty()) {
                accessinfopackage_ = other.accessinfopackage_;
                bitField0_ = (bitField0_ & ~0x00040000);
              } else {
                ensureAccessinfopackageIsMutable();
                accessinfopackage_.addAll(other.accessinfopackage_);
              }
              onChanged();
            }
          } else {
            if (!other.accessinfopackage_.isEmpty()) {
              if (accessinfopackageBuilder_.isEmpty()) {
                accessinfopackageBuilder_.dispose();
                accessinfopackageBuilder_ = null;
                accessinfopackage_ = other.accessinfopackage_;
                bitField0_ = (bitField0_ & ~0x00040000);
                accessinfopackageBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getAccessinfopackageFieldBuilder() : null;
              } else {
                accessinfopackageBuilder_.addAllMessages(other.accessinfopackage_);
              }
            }
          }
          if (other.hasReleasestartdate()) {
            mergeReleasestartdate(other.getReleasestartdate());
          }
          if (other.hasReleaseenddate()) {
            mergeReleaseenddate(other.getReleaseenddate());
          }
          if (other.hasMissionstatementurl()) {
            mergeMissionstatementurl(other.getMissionstatementurl());
          }
          if (other.hasDataprovider()) {
            mergeDataprovider(other.getDataprovider());
          }
          if (other.hasServiceprovider()) {
            mergeServiceprovider(other.getServiceprovider());
          }
          if (other.hasDatabaseaccesstype()) {
            mergeDatabaseaccesstype(other.getDatabaseaccesstype());
          }
          if (other.hasDatauploadtype()) {
            mergeDatauploadtype(other.getDatauploadtype());
          }
          if (other.hasDatabaseaccessrestriction()) {
            mergeDatabaseaccessrestriction(other.getDatabaseaccessrestriction());
          }
          if (other.hasDatauploadrestriction()) {
            mergeDatauploadrestriction(other.getDatauploadrestriction());
          }
          if (other.hasVersioning()) {
            mergeVersioning(other.getVersioning());
          }
          if (other.hasCitationguidelineurl()) {
            mergeCitationguidelineurl(other.getCitationguidelineurl());
          }
          if (other.hasQualitymanagementkind()) {
            mergeQualitymanagementkind(other.getQualitymanagementkind());
          }
          if (other.hasPidsystems()) {
            mergePidsystems(other.getPidsystems());
          }
          if (other.hasCertificates()) {
            mergeCertificates(other.getCertificates());
          }
          if (policiesBuilder_ == null) {
            if (!other.policies_.isEmpty()) {
              if (policies_.isEmpty()) {
                policies_ = other.policies_;
                bitField1_ = (bitField1_ & ~0x00000002);
              } else {
                ensurePoliciesIsMutable();
                policies_.addAll(other.policies_);
              }
              onChanged();
            }
          } else {
            if (!other.policies_.isEmpty()) {
              if (policiesBuilder_.isEmpty()) {
                policiesBuilder_.dispose();
                policiesBuilder_ = null;
                policies_ = other.policies_;
                bitField1_ = (bitField1_ & ~0x00000002);
                policiesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getPoliciesFieldBuilder() : null;
              } else {
                policiesBuilder_.addAllMessages(other.policies_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          if (hasDatasourcetype()) {
            if (!getDatasourcetype().isInitialized()) {
              
              return false;
            }
          }
          if (hasOpenairecompatibility()) {
            if (!getOpenairecompatibility().isInitialized()) {
              
              return false;
            }
          }
          if (hasOfficialname()) {
            if (!getOfficialname().isInitialized()) {
              
              return false;
            }
          }
          if (hasEnglishname()) {
            if (!getEnglishname().isInitialized()) {
              
              return false;
            }
          }
          if (hasWebsiteurl()) {
            if (!getWebsiteurl().isInitialized()) {
              
              return false;
            }
          }
          if (hasLogourl()) {
            if (!getLogourl().isInitialized()) {
              
              return false;
            }
          }
          if (hasContactemail()) {
            if (!getContactemail().isInitialized()) {
              
              return false;
            }
          }
          if (hasNamespaceprefix()) {
            if (!getNamespaceprefix().isInitialized()) {
              
              return false;
            }
          }
          if (hasLatitude()) {
            if (!getLatitude().isInitialized()) {
              
              return false;
            }
          }
          if (hasLongitude()) {
            if (!getLongitude().isInitialized()) {
              
              return false;
            }
          }
          if (hasDateofvalidation()) {
            if (!getDateofvalidation().isInitialized()) {
              
              return false;
            }
          }
          if (hasDescription()) {
            if (!getDescription().isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getSubjectsCount(); i++) {
            if (!getSubjects(i).isInitialized()) {
              
              return false;
            }
          }
          if (hasOdnumberofitems()) {
            if (!getOdnumberofitems().isInitialized()) {
              
              return false;
            }
          }
          if (hasOdnumberofitemsdate()) {
            if (!getOdnumberofitemsdate().isInitialized()) {
              
              return false;
            }
          }
          if (hasOdpolicies()) {
            if (!getOdpolicies().isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getOdlanguagesCount(); i++) {
            if (!getOdlanguages(i).isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getOdcontenttypesCount(); i++) {
            if (!getOdcontenttypes(i).isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getAccessinfopackageCount(); i++) {
            if (!getAccessinfopackage(i).isInitialized()) {
              
              return false;
            }
          }
          if (hasReleasestartdate()) {
            if (!getReleasestartdate().isInitialized()) {
              
              return false;
            }
          }
          if (hasReleaseenddate()) {
            if (!getReleaseenddate().isInitialized()) {
              
              return false;
            }
          }
          if (hasMissionstatementurl()) {
            if (!getMissionstatementurl().isInitialized()) {
              
              return false;
            }
          }
          if (hasDataprovider()) {
            if (!getDataprovider().isInitialized()) {
              
              return false;
            }
          }
          if (hasServiceprovider()) {
            if (!getServiceprovider().isInitialized()) {
              
              return false;
            }
          }
          if (hasDatabaseaccesstype()) {
            if (!getDatabaseaccesstype().isInitialized()) {
              
              return false;
            }
          }
          if (hasDatauploadtype()) {
            if (!getDatauploadtype().isInitialized()) {
              
              return false;
            }
          }
          if (hasDatabaseaccessrestriction()) {
            if (!getDatabaseaccessrestriction().isInitialized()) {
              
              return false;
            }
          }
          if (hasDatauploadrestriction()) {
            if (!getDatauploadrestriction().isInitialized()) {
              
              return false;
            }
          }
          if (hasVersioning()) {
            if (!getVersioning().isInitialized()) {
              
              return false;
            }
          }
          if (hasCitationguidelineurl()) {
            if (!getCitationguidelineurl().isInitialized()) {
              
              return false;
            }
          }
          if (hasQualitymanagementkind()) {
            if (!getQualitymanagementkind().isInitialized()) {
              
              return false;
            }
          }
          if (hasPidsystems()) {
            if (!getPidsystems().isInitialized()) {
              
              return false;
            }
          }
          if (hasCertificates()) {
            if (!getCertificates().isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getPoliciesCount(); i++) {
            if (!getPolicies(i).isInitialized()) {
              
              return false;
            }
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 10: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasOfficialname()) {
                  subBuilder.mergeFrom(getOfficialname());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setOfficialname(subBuilder.buildPartial());
                break;
              }
              case 18: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasEnglishname()) {
                  subBuilder.mergeFrom(getEnglishname());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setEnglishname(subBuilder.buildPartial());
                break;
              }
              case 26: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasWebsiteurl()) {
                  subBuilder.mergeFrom(getWebsiteurl());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setWebsiteurl(subBuilder.buildPartial());
                break;
              }
              case 34: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasLogourl()) {
                  subBuilder.mergeFrom(getLogourl());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setLogourl(subBuilder.buildPartial());
                break;
              }
              case 42: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasContactemail()) {
                  subBuilder.mergeFrom(getContactemail());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setContactemail(subBuilder.buildPartial());
                break;
              }
              case 50: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addAccessinfopackage(subBuilder.buildPartial());
                break;
              }
              case 58: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasNamespaceprefix()) {
                  subBuilder.mergeFrom(getNamespaceprefix());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setNamespaceprefix(subBuilder.buildPartial());
                break;
              }
              case 74: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasOdnumberofitems()) {
                  subBuilder.mergeFrom(getOdnumberofitems());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setOdnumberofitems(subBuilder.buildPartial());
                break;
              }
              case 82: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasOdnumberofitemsdate()) {
                  subBuilder.mergeFrom(getOdnumberofitemsdate());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setOdnumberofitemsdate(subBuilder.buildPartial());
                break;
              }
              case 98: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasOdpolicies()) {
                  subBuilder.mergeFrom(getOdpolicies());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setOdpolicies(subBuilder.buildPartial());
                break;
              }
              case 106: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOdlanguages(subBuilder.buildPartial());
                break;
              }
              case 114: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOdcontenttypes(subBuilder.buildPartial());
                break;
              }
              case 122: {
                eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.newBuilder();
                if (hasDatasourcetype()) {
                  subBuilder.mergeFrom(getDatasourcetype());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDatasourcetype(subBuilder.buildPartial());
                break;
              }
              case 138: {
                eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.newBuilder();
                if (hasOpenairecompatibility()) {
                  subBuilder.mergeFrom(getOpenairecompatibility());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setOpenairecompatibility(subBuilder.buildPartial());
                break;
              }
              case 146: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasLatitude()) {
                  subBuilder.mergeFrom(getLatitude());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setLatitude(subBuilder.buildPartial());
                break;
              }
              case 154: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasLongitude()) {
                  subBuilder.mergeFrom(getLongitude());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setLongitude(subBuilder.buildPartial());
                break;
              }
              case 162: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasDateofvalidation()) {
                  subBuilder.mergeFrom(getDateofvalidation());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDateofvalidation(subBuilder.buildPartial());
                break;
              }
              case 170: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasDescription()) {
                  subBuilder.mergeFrom(getDescription());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDescription(subBuilder.buildPartial());
                break;
              }
              case 250: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasReleasestartdate()) {
                  subBuilder.mergeFrom(getReleasestartdate());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setReleasestartdate(subBuilder.buildPartial());
                break;
              }
              case 258: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasReleaseenddate()) {
                  subBuilder.mergeFrom(getReleaseenddate());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setReleaseenddate(subBuilder.buildPartial());
                break;
              }
              case 266: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasMissionstatementurl()) {
                  subBuilder.mergeFrom(getMissionstatementurl());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setMissionstatementurl(subBuilder.buildPartial());
                break;
              }
              case 274: {
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.newBuilder();
                if (hasDataprovider()) {
                  subBuilder.mergeFrom(getDataprovider());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDataprovider(subBuilder.buildPartial());
                break;
              }
              case 282: {
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.newBuilder();
                if (hasServiceprovider()) {
                  subBuilder.mergeFrom(getServiceprovider());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setServiceprovider(subBuilder.buildPartial());
                break;
              }
              case 290: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasDatabaseaccesstype()) {
                  subBuilder.mergeFrom(getDatabaseaccesstype());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDatabaseaccesstype(subBuilder.buildPartial());
                break;
              }
              case 298: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasDatauploadtype()) {
                  subBuilder.mergeFrom(getDatauploadtype());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDatauploadtype(subBuilder.buildPartial());
                break;
              }
              case 306: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasDatabaseaccessrestriction()) {
                  subBuilder.mergeFrom(getDatabaseaccessrestriction());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDatabaseaccessrestriction(subBuilder.buildPartial());
                break;
              }
              case 314: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasDatauploadrestriction()) {
                  subBuilder.mergeFrom(getDatauploadrestriction());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDatauploadrestriction(subBuilder.buildPartial());
                break;
              }
              case 322: {
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.newBuilder();
                if (hasVersioning()) {
                  subBuilder.mergeFrom(getVersioning());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setVersioning(subBuilder.buildPartial());
                break;
              }
              case 330: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasCitationguidelineurl()) {
                  subBuilder.mergeFrom(getCitationguidelineurl());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCitationguidelineurl(subBuilder.buildPartial());
                break;
              }
              case 338: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasQualitymanagementkind()) {
                  subBuilder.mergeFrom(getQualitymanagementkind());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setQualitymanagementkind(subBuilder.buildPartial());
                break;
              }
              case 346: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasPidsystems()) {
                  subBuilder.mergeFrom(getPidsystems());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setPidsystems(subBuilder.buildPartial());
                break;
              }
              case 354: {
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder();
                if (hasCertificates()) {
                  subBuilder.mergeFrom(getCertificates());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCertificates(subBuilder.buildPartial());
                break;
              }
              case 362: {
                eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addSubjects(subBuilder.buildPartial());
                break;
              }
              case 370: {
                eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder subBuilder = eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addPolicies(subBuilder.buildPartial());
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        private int bitField1_;
        
        // optional .eu.dnetlib.data.proto.Qualifier datasourcetype = 15;
        private eu.dnetlib.data.proto.FieldTypeProtos.Qualifier datasourcetype_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.Qualifier, eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder, eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder> datasourcetypeBuilder_;
        public boolean hasDatasourcetype() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.Qualifier getDatasourcetype() {
          if (datasourcetypeBuilder_ == null) {
            return datasourcetype_;
          } else {
            return datasourcetypeBuilder_.getMessage();
          }
        }
        public Builder setDatasourcetype(eu.dnetlib.data.proto.FieldTypeProtos.Qualifier value) {
          if (datasourcetypeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            datasourcetype_ = value;
            onChanged();
          } else {
            datasourcetypeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder setDatasourcetype(
            eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder builderForValue) {
          if (datasourcetypeBuilder_ == null) {
            datasourcetype_ = builderForValue.build();
            onChanged();
          } else {
            datasourcetypeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder mergeDatasourcetype(eu.dnetlib.data.proto.FieldTypeProtos.Qualifier value) {
          if (datasourcetypeBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                datasourcetype_ != eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance()) {
              datasourcetype_ =
                eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.newBuilder(datasourcetype_).mergeFrom(value).buildPartial();
            } else {
              datasourcetype_ = value;
            }
            onChanged();
          } else {
            datasourcetypeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder clearDatasourcetype() {
          if (datasourcetypeBuilder_ == null) {
            datasourcetype_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
            onChanged();
          } else {
            datasourcetypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder getDatasourcetypeBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getDatasourcetypeFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder getDatasourcetypeOrBuilder() {
          if (datasourcetypeBuilder_ != null) {
            return datasourcetypeBuilder_.getMessageOrBuilder();
          } else {
            return datasourcetype_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.Qualifier, eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder, eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder> 
            getDatasourcetypeFieldBuilder() {
          if (datasourcetypeBuilder_ == null) {
            datasourcetypeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.Qualifier, eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder, eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder>(
                    datasourcetype_,
                    getParentForChildren(),
                    isClean());
            datasourcetype_ = null;
          }
          return datasourcetypeBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.Qualifier openairecompatibility = 17;
        private eu.dnetlib.data.proto.FieldTypeProtos.Qualifier openairecompatibility_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.Qualifier, eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder, eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder> openairecompatibilityBuilder_;
        public boolean hasOpenairecompatibility() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.Qualifier getOpenairecompatibility() {
          if (openairecompatibilityBuilder_ == null) {
            return openairecompatibility_;
          } else {
            return openairecompatibilityBuilder_.getMessage();
          }
        }
        public Builder setOpenairecompatibility(eu.dnetlib.data.proto.FieldTypeProtos.Qualifier value) {
          if (openairecompatibilityBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            openairecompatibility_ = value;
            onChanged();
          } else {
            openairecompatibilityBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder setOpenairecompatibility(
            eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder builderForValue) {
          if (openairecompatibilityBuilder_ == null) {
            openairecompatibility_ = builderForValue.build();
            onChanged();
          } else {
            openairecompatibilityBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder mergeOpenairecompatibility(eu.dnetlib.data.proto.FieldTypeProtos.Qualifier value) {
          if (openairecompatibilityBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                openairecompatibility_ != eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance()) {
              openairecompatibility_ =
                eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.newBuilder(openairecompatibility_).mergeFrom(value).buildPartial();
            } else {
              openairecompatibility_ = value;
            }
            onChanged();
          } else {
            openairecompatibilityBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder clearOpenairecompatibility() {
          if (openairecompatibilityBuilder_ == null) {
            openairecompatibility_ = eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.getDefaultInstance();
            onChanged();
          } else {
            openairecompatibilityBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder getOpenairecompatibilityBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getOpenairecompatibilityFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder getOpenairecompatibilityOrBuilder() {
          if (openairecompatibilityBuilder_ != null) {
            return openairecompatibilityBuilder_.getMessageOrBuilder();
          } else {
            return openairecompatibility_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.Qualifier, eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder, eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder> 
            getOpenairecompatibilityFieldBuilder() {
          if (openairecompatibilityBuilder_ == null) {
            openairecompatibilityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.Qualifier, eu.dnetlib.data.proto.FieldTypeProtos.Qualifier.Builder, eu.dnetlib.data.proto.FieldTypeProtos.QualifierOrBuilder>(
                    openairecompatibility_,
                    getParentForChildren(),
                    isClean());
            openairecompatibility_ = null;
          }
          return openairecompatibilityBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField officialname = 1;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField officialname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> officialnameBuilder_;
        public boolean hasOfficialname() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOfficialname() {
          if (officialnameBuilder_ == null) {
            return officialname_;
          } else {
            return officialnameBuilder_.getMessage();
          }
        }
        public Builder setOfficialname(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (officialnameBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            officialname_ = value;
            onChanged();
          } else {
            officialnameBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder setOfficialname(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (officialnameBuilder_ == null) {
            officialname_ = builderForValue.build();
            onChanged();
          } else {
            officialnameBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder mergeOfficialname(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (officialnameBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                officialname_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              officialname_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(officialname_).mergeFrom(value).buildPartial();
            } else {
              officialname_ = value;
            }
            onChanged();
          } else {
            officialnameBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder clearOfficialname() {
          if (officialnameBuilder_ == null) {
            officialname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            officialnameBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getOfficialnameBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getOfficialnameFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOfficialnameOrBuilder() {
          if (officialnameBuilder_ != null) {
            return officialnameBuilder_.getMessageOrBuilder();
          } else {
            return officialname_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getOfficialnameFieldBuilder() {
          if (officialnameBuilder_ == null) {
            officialnameBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    officialname_,
                    getParentForChildren(),
                    isClean());
            officialname_ = null;
          }
          return officialnameBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField englishname = 2;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField englishname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> englishnameBuilder_;
        public boolean hasEnglishname() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getEnglishname() {
          if (englishnameBuilder_ == null) {
            return englishname_;
          } else {
            return englishnameBuilder_.getMessage();
          }
        }
        public Builder setEnglishname(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (englishnameBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            englishname_ = value;
            onChanged();
          } else {
            englishnameBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder setEnglishname(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (englishnameBuilder_ == null) {
            englishname_ = builderForValue.build();
            onChanged();
          } else {
            englishnameBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder mergeEnglishname(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (englishnameBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008) &&
                englishname_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              englishname_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(englishname_).mergeFrom(value).buildPartial();
            } else {
              englishname_ = value;
            }
            onChanged();
          } else {
            englishnameBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder clearEnglishname() {
          if (englishnameBuilder_ == null) {
            englishname_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            englishnameBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getEnglishnameBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getEnglishnameFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getEnglishnameOrBuilder() {
          if (englishnameBuilder_ != null) {
            return englishnameBuilder_.getMessageOrBuilder();
          } else {
            return englishname_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getEnglishnameFieldBuilder() {
          if (englishnameBuilder_ == null) {
            englishnameBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    englishname_,
                    getParentForChildren(),
                    isClean());
            englishname_ = null;
          }
          return englishnameBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField websiteurl = 3;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField websiteurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> websiteurlBuilder_;
        public boolean hasWebsiteurl() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getWebsiteurl() {
          if (websiteurlBuilder_ == null) {
            return websiteurl_;
          } else {
            return websiteurlBuilder_.getMessage();
          }
        }
        public Builder setWebsiteurl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (websiteurlBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            websiteurl_ = value;
            onChanged();
          } else {
            websiteurlBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder setWebsiteurl(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (websiteurlBuilder_ == null) {
            websiteurl_ = builderForValue.build();
            onChanged();
          } else {
            websiteurlBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder mergeWebsiteurl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (websiteurlBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                websiteurl_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              websiteurl_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(websiteurl_).mergeFrom(value).buildPartial();
            } else {
              websiteurl_ = value;
            }
            onChanged();
          } else {
            websiteurlBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder clearWebsiteurl() {
          if (websiteurlBuilder_ == null) {
            websiteurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            websiteurlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getWebsiteurlBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getWebsiteurlFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getWebsiteurlOrBuilder() {
          if (websiteurlBuilder_ != null) {
            return websiteurlBuilder_.getMessageOrBuilder();
          } else {
            return websiteurl_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getWebsiteurlFieldBuilder() {
          if (websiteurlBuilder_ == null) {
            websiteurlBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    websiteurl_,
                    getParentForChildren(),
                    isClean());
            websiteurl_ = null;
          }
          return websiteurlBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField logourl = 4;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField logourl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> logourlBuilder_;
        public boolean hasLogourl() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getLogourl() {
          if (logourlBuilder_ == null) {
            return logourl_;
          } else {
            return logourlBuilder_.getMessage();
          }
        }
        public Builder setLogourl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (logourlBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            logourl_ = value;
            onChanged();
          } else {
            logourlBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder setLogourl(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (logourlBuilder_ == null) {
            logourl_ = builderForValue.build();
            onChanged();
          } else {
            logourlBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder mergeLogourl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (logourlBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020) &&
                logourl_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              logourl_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(logourl_).mergeFrom(value).buildPartial();
            } else {
              logourl_ = value;
            }
            onChanged();
          } else {
            logourlBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder clearLogourl() {
          if (logourlBuilder_ == null) {
            logourl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            logourlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getLogourlBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getLogourlFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLogourlOrBuilder() {
          if (logourlBuilder_ != null) {
            return logourlBuilder_.getMessageOrBuilder();
          } else {
            return logourl_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getLogourlFieldBuilder() {
          if (logourlBuilder_ == null) {
            logourlBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    logourl_,
                    getParentForChildren(),
                    isClean());
            logourl_ = null;
          }
          return logourlBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField contactemail = 5;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField contactemail_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> contactemailBuilder_;
        public boolean hasContactemail() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getContactemail() {
          if (contactemailBuilder_ == null) {
            return contactemail_;
          } else {
            return contactemailBuilder_.getMessage();
          }
        }
        public Builder setContactemail(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (contactemailBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            contactemail_ = value;
            onChanged();
          } else {
            contactemailBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder setContactemail(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (contactemailBuilder_ == null) {
            contactemail_ = builderForValue.build();
            onChanged();
          } else {
            contactemailBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder mergeContactemail(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (contactemailBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040) &&
                contactemail_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              contactemail_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(contactemail_).mergeFrom(value).buildPartial();
            } else {
              contactemail_ = value;
            }
            onChanged();
          } else {
            contactemailBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder clearContactemail() {
          if (contactemailBuilder_ == null) {
            contactemail_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            contactemailBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getContactemailBuilder() {
          bitField0_ |= 0x00000040;
          onChanged();
          return getContactemailFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getContactemailOrBuilder() {
          if (contactemailBuilder_ != null) {
            return contactemailBuilder_.getMessageOrBuilder();
          } else {
            return contactemail_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getContactemailFieldBuilder() {
          if (contactemailBuilder_ == null) {
            contactemailBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    contactemail_,
                    getParentForChildren(),
                    isClean());
            contactemail_ = null;
          }
          return contactemailBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField namespaceprefix = 7;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField namespaceprefix_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> namespaceprefixBuilder_;
        public boolean hasNamespaceprefix() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getNamespaceprefix() {
          if (namespaceprefixBuilder_ == null) {
            return namespaceprefix_;
          } else {
            return namespaceprefixBuilder_.getMessage();
          }
        }
        public Builder setNamespaceprefix(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (namespaceprefixBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            namespaceprefix_ = value;
            onChanged();
          } else {
            namespaceprefixBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder setNamespaceprefix(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (namespaceprefixBuilder_ == null) {
            namespaceprefix_ = builderForValue.build();
            onChanged();
          } else {
            namespaceprefixBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder mergeNamespaceprefix(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (namespaceprefixBuilder_ == null) {
            if (((bitField0_ & 0x00000080) == 0x00000080) &&
                namespaceprefix_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              namespaceprefix_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(namespaceprefix_).mergeFrom(value).buildPartial();
            } else {
              namespaceprefix_ = value;
            }
            onChanged();
          } else {
            namespaceprefixBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder clearNamespaceprefix() {
          if (namespaceprefixBuilder_ == null) {
            namespaceprefix_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            namespaceprefixBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000080);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getNamespaceprefixBuilder() {
          bitField0_ |= 0x00000080;
          onChanged();
          return getNamespaceprefixFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getNamespaceprefixOrBuilder() {
          if (namespaceprefixBuilder_ != null) {
            return namespaceprefixBuilder_.getMessageOrBuilder();
          } else {
            return namespaceprefix_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getNamespaceprefixFieldBuilder() {
          if (namespaceprefixBuilder_ == null) {
            namespaceprefixBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    namespaceprefix_,
                    getParentForChildren(),
                    isClean());
            namespaceprefix_ = null;
          }
          return namespaceprefixBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField latitude = 18;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField latitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> latitudeBuilder_;
        public boolean hasLatitude() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getLatitude() {
          if (latitudeBuilder_ == null) {
            return latitude_;
          } else {
            return latitudeBuilder_.getMessage();
          }
        }
        public Builder setLatitude(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (latitudeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            latitude_ = value;
            onChanged();
          } else {
            latitudeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder setLatitude(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (latitudeBuilder_ == null) {
            latitude_ = builderForValue.build();
            onChanged();
          } else {
            latitudeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder mergeLatitude(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (latitudeBuilder_ == null) {
            if (((bitField0_ & 0x00000100) == 0x00000100) &&
                latitude_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              latitude_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(latitude_).mergeFrom(value).buildPartial();
            } else {
              latitude_ = value;
            }
            onChanged();
          } else {
            latitudeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder clearLatitude() {
          if (latitudeBuilder_ == null) {
            latitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            latitudeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getLatitudeBuilder() {
          bitField0_ |= 0x00000100;
          onChanged();
          return getLatitudeFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLatitudeOrBuilder() {
          if (latitudeBuilder_ != null) {
            return latitudeBuilder_.getMessageOrBuilder();
          } else {
            return latitude_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getLatitudeFieldBuilder() {
          if (latitudeBuilder_ == null) {
            latitudeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    latitude_,
                    getParentForChildren(),
                    isClean());
            latitude_ = null;
          }
          return latitudeBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField longitude = 19;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField longitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> longitudeBuilder_;
        public boolean hasLongitude() {
          return ((bitField0_ & 0x00000200) == 0x00000200);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getLongitude() {
          if (longitudeBuilder_ == null) {
            return longitude_;
          } else {
            return longitudeBuilder_.getMessage();
          }
        }
        public Builder setLongitude(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (longitudeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            longitude_ = value;
            onChanged();
          } else {
            longitudeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000200;
          return this;
        }
        public Builder setLongitude(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (longitudeBuilder_ == null) {
            longitude_ = builderForValue.build();
            onChanged();
          } else {
            longitudeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000200;
          return this;
        }
        public Builder mergeLongitude(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (longitudeBuilder_ == null) {
            if (((bitField0_ & 0x00000200) == 0x00000200) &&
                longitude_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              longitude_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(longitude_).mergeFrom(value).buildPartial();
            } else {
              longitude_ = value;
            }
            onChanged();
          } else {
            longitudeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000200;
          return this;
        }
        public Builder clearLongitude() {
          if (longitudeBuilder_ == null) {
            longitude_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            longitudeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000200);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getLongitudeBuilder() {
          bitField0_ |= 0x00000200;
          onChanged();
          return getLongitudeFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getLongitudeOrBuilder() {
          if (longitudeBuilder_ != null) {
            return longitudeBuilder_.getMessageOrBuilder();
          } else {
            return longitude_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getLongitudeFieldBuilder() {
          if (longitudeBuilder_ == null) {
            longitudeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    longitude_,
                    getParentForChildren(),
                    isClean());
            longitude_ = null;
          }
          return longitudeBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField dateofvalidation = 20;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField dateofvalidation_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> dateofvalidationBuilder_;
        public boolean hasDateofvalidation() {
          return ((bitField0_ & 0x00000400) == 0x00000400);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDateofvalidation() {
          if (dateofvalidationBuilder_ == null) {
            return dateofvalidation_;
          } else {
            return dateofvalidationBuilder_.getMessage();
          }
        }
        public Builder setDateofvalidation(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (dateofvalidationBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            dateofvalidation_ = value;
            onChanged();
          } else {
            dateofvalidationBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000400;
          return this;
        }
        public Builder setDateofvalidation(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (dateofvalidationBuilder_ == null) {
            dateofvalidation_ = builderForValue.build();
            onChanged();
          } else {
            dateofvalidationBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000400;
          return this;
        }
        public Builder mergeDateofvalidation(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (dateofvalidationBuilder_ == null) {
            if (((bitField0_ & 0x00000400) == 0x00000400) &&
                dateofvalidation_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              dateofvalidation_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(dateofvalidation_).mergeFrom(value).buildPartial();
            } else {
              dateofvalidation_ = value;
            }
            onChanged();
          } else {
            dateofvalidationBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000400;
          return this;
        }
        public Builder clearDateofvalidation() {
          if (dateofvalidationBuilder_ == null) {
            dateofvalidation_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            dateofvalidationBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000400);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getDateofvalidationBuilder() {
          bitField0_ |= 0x00000400;
          onChanged();
          return getDateofvalidationFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDateofvalidationOrBuilder() {
          if (dateofvalidationBuilder_ != null) {
            return dateofvalidationBuilder_.getMessageOrBuilder();
          } else {
            return dateofvalidation_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getDateofvalidationFieldBuilder() {
          if (dateofvalidationBuilder_ == null) {
            dateofvalidationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    dateofvalidation_,
                    getParentForChildren(),
                    isClean());
            dateofvalidation_ = null;
          }
          return dateofvalidationBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField description = 21;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField description_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> descriptionBuilder_;
        public boolean hasDescription() {
          return ((bitField0_ & 0x00000800) == 0x00000800);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDescription() {
          if (descriptionBuilder_ == null) {
            return description_;
          } else {
            return descriptionBuilder_.getMessage();
          }
        }
        public Builder setDescription(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (descriptionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            description_ = value;
            onChanged();
          } else {
            descriptionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000800;
          return this;
        }
        public Builder setDescription(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (descriptionBuilder_ == null) {
            description_ = builderForValue.build();
            onChanged();
          } else {
            descriptionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000800;
          return this;
        }
        public Builder mergeDescription(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (descriptionBuilder_ == null) {
            if (((bitField0_ & 0x00000800) == 0x00000800) &&
                description_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              description_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(description_).mergeFrom(value).buildPartial();
            } else {
              description_ = value;
            }
            onChanged();
          } else {
            descriptionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000800;
          return this;
        }
        public Builder clearDescription() {
          if (descriptionBuilder_ == null) {
            description_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            descriptionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000800);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getDescriptionBuilder() {
          bitField0_ |= 0x00000800;
          onChanged();
          return getDescriptionFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDescriptionOrBuilder() {
          if (descriptionBuilder_ != null) {
            return descriptionBuilder_.getMessageOrBuilder();
          } else {
            return description_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getDescriptionFieldBuilder() {
          if (descriptionBuilder_ == null) {
            descriptionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    description_,
                    getParentForChildren(),
                    isClean());
            description_ = null;
          }
          return descriptionBuilder_;
        }
        
        // repeated .eu.dnetlib.data.proto.StructuredProperty subjects = 45;
        private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty> subjects_ =
          java.util.Collections.emptyList();
        private void ensureSubjectsIsMutable() {
          if (!((bitField0_ & 0x00001000) == 0x00001000)) {
            subjects_ = new java.util.ArrayList<eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty>(subjects_);
            bitField0_ |= 0x00001000;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder> subjectsBuilder_;
        
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty> getSubjectsList() {
          if (subjectsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(subjects_);
          } else {
            return subjectsBuilder_.getMessageList();
          }
        }
        public int getSubjectsCount() {
          if (subjectsBuilder_ == null) {
            return subjects_.size();
          } else {
            return subjectsBuilder_.getCount();
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty getSubjects(int index) {
          if (subjectsBuilder_ == null) {
            return subjects_.get(index);
          } else {
            return subjectsBuilder_.getMessage(index);
          }
        }
        public Builder setSubjects(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty value) {
          if (subjectsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSubjectsIsMutable();
            subjects_.set(index, value);
            onChanged();
          } else {
            subjectsBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setSubjects(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder builderForValue) {
          if (subjectsBuilder_ == null) {
            ensureSubjectsIsMutable();
            subjects_.set(index, builderForValue.build());
            onChanged();
          } else {
            subjectsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addSubjects(eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty value) {
          if (subjectsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSubjectsIsMutable();
            subjects_.add(value);
            onChanged();
          } else {
            subjectsBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addSubjects(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty value) {
          if (subjectsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSubjectsIsMutable();
            subjects_.add(index, value);
            onChanged();
          } else {
            subjectsBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addSubjects(
            eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder builderForValue) {
          if (subjectsBuilder_ == null) {
            ensureSubjectsIsMutable();
            subjects_.add(builderForValue.build());
            onChanged();
          } else {
            subjectsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addSubjects(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder builderForValue) {
          if (subjectsBuilder_ == null) {
            ensureSubjectsIsMutable();
            subjects_.add(index, builderForValue.build());
            onChanged();
          } else {
            subjectsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllSubjects(
            java.lang.Iterable<? extends eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty> values) {
          if (subjectsBuilder_ == null) {
            ensureSubjectsIsMutable();
            super.addAll(values, subjects_);
            onChanged();
          } else {
            subjectsBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearSubjects() {
          if (subjectsBuilder_ == null) {
            subjects_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00001000);
            onChanged();
          } else {
            subjectsBuilder_.clear();
          }
          return this;
        }
        public Builder removeSubjects(int index) {
          if (subjectsBuilder_ == null) {
            ensureSubjectsIsMutable();
            subjects_.remove(index);
            onChanged();
          } else {
            subjectsBuilder_.remove(index);
          }
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder getSubjectsBuilder(
            int index) {
          return getSubjectsFieldBuilder().getBuilder(index);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder getSubjectsOrBuilder(
            int index) {
          if (subjectsBuilder_ == null) {
            return subjects_.get(index);  } else {
            return subjectsBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder> 
             getSubjectsOrBuilderList() {
          if (subjectsBuilder_ != null) {
            return subjectsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(subjects_);
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder addSubjectsBuilder() {
          return getSubjectsFieldBuilder().addBuilder(
              eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.getDefaultInstance());
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder addSubjectsBuilder(
            int index) {
          return getSubjectsFieldBuilder().addBuilder(
              index, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.getDefaultInstance());
        }
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder> 
             getSubjectsBuilderList() {
          return getSubjectsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder> 
            getSubjectsFieldBuilder() {
          if (subjectsBuilder_ == null) {
            subjectsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty, eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StructuredPropertyOrBuilder>(
                    subjects_,
                    ((bitField0_ & 0x00001000) == 0x00001000),
                    getParentForChildren(),
                    isClean());
            subjects_ = null;
          }
          return subjectsBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField odnumberofitems = 9;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField odnumberofitems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> odnumberofitemsBuilder_;
        public boolean hasOdnumberofitems() {
          return ((bitField0_ & 0x00002000) == 0x00002000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdnumberofitems() {
          if (odnumberofitemsBuilder_ == null) {
            return odnumberofitems_;
          } else {
            return odnumberofitemsBuilder_.getMessage();
          }
        }
        public Builder setOdnumberofitems(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odnumberofitemsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            odnumberofitems_ = value;
            onChanged();
          } else {
            odnumberofitemsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00002000;
          return this;
        }
        public Builder setOdnumberofitems(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odnumberofitemsBuilder_ == null) {
            odnumberofitems_ = builderForValue.build();
            onChanged();
          } else {
            odnumberofitemsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00002000;
          return this;
        }
        public Builder mergeOdnumberofitems(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odnumberofitemsBuilder_ == null) {
            if (((bitField0_ & 0x00002000) == 0x00002000) &&
                odnumberofitems_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              odnumberofitems_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(odnumberofitems_).mergeFrom(value).buildPartial();
            } else {
              odnumberofitems_ = value;
            }
            onChanged();
          } else {
            odnumberofitemsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00002000;
          return this;
        }
        public Builder clearOdnumberofitems() {
          if (odnumberofitemsBuilder_ == null) {
            odnumberofitems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            odnumberofitemsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00002000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getOdnumberofitemsBuilder() {
          bitField0_ |= 0x00002000;
          onChanged();
          return getOdnumberofitemsFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdnumberofitemsOrBuilder() {
          if (odnumberofitemsBuilder_ != null) {
            return odnumberofitemsBuilder_.getMessageOrBuilder();
          } else {
            return odnumberofitems_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getOdnumberofitemsFieldBuilder() {
          if (odnumberofitemsBuilder_ == null) {
            odnumberofitemsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    odnumberofitems_,
                    getParentForChildren(),
                    isClean());
            odnumberofitems_ = null;
          }
          return odnumberofitemsBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField odnumberofitemsdate = 10;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField odnumberofitemsdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> odnumberofitemsdateBuilder_;
        public boolean hasOdnumberofitemsdate() {
          return ((bitField0_ & 0x00004000) == 0x00004000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdnumberofitemsdate() {
          if (odnumberofitemsdateBuilder_ == null) {
            return odnumberofitemsdate_;
          } else {
            return odnumberofitemsdateBuilder_.getMessage();
          }
        }
        public Builder setOdnumberofitemsdate(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odnumberofitemsdateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            odnumberofitemsdate_ = value;
            onChanged();
          } else {
            odnumberofitemsdateBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00004000;
          return this;
        }
        public Builder setOdnumberofitemsdate(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odnumberofitemsdateBuilder_ == null) {
            odnumberofitemsdate_ = builderForValue.build();
            onChanged();
          } else {
            odnumberofitemsdateBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00004000;
          return this;
        }
        public Builder mergeOdnumberofitemsdate(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odnumberofitemsdateBuilder_ == null) {
            if (((bitField0_ & 0x00004000) == 0x00004000) &&
                odnumberofitemsdate_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              odnumberofitemsdate_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(odnumberofitemsdate_).mergeFrom(value).buildPartial();
            } else {
              odnumberofitemsdate_ = value;
            }
            onChanged();
          } else {
            odnumberofitemsdateBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00004000;
          return this;
        }
        public Builder clearOdnumberofitemsdate() {
          if (odnumberofitemsdateBuilder_ == null) {
            odnumberofitemsdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            odnumberofitemsdateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00004000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getOdnumberofitemsdateBuilder() {
          bitField0_ |= 0x00004000;
          onChanged();
          return getOdnumberofitemsdateFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdnumberofitemsdateOrBuilder() {
          if (odnumberofitemsdateBuilder_ != null) {
            return odnumberofitemsdateBuilder_.getMessageOrBuilder();
          } else {
            return odnumberofitemsdate_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getOdnumberofitemsdateFieldBuilder() {
          if (odnumberofitemsdateBuilder_ == null) {
            odnumberofitemsdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    odnumberofitemsdate_,
                    getParentForChildren(),
                    isClean());
            odnumberofitemsdate_ = null;
          }
          return odnumberofitemsdateBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField odpolicies = 12;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField odpolicies_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> odpoliciesBuilder_;
        public boolean hasOdpolicies() {
          return ((bitField0_ & 0x00008000) == 0x00008000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdpolicies() {
          if (odpoliciesBuilder_ == null) {
            return odpolicies_;
          } else {
            return odpoliciesBuilder_.getMessage();
          }
        }
        public Builder setOdpolicies(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odpoliciesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            odpolicies_ = value;
            onChanged();
          } else {
            odpoliciesBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00008000;
          return this;
        }
        public Builder setOdpolicies(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odpoliciesBuilder_ == null) {
            odpolicies_ = builderForValue.build();
            onChanged();
          } else {
            odpoliciesBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00008000;
          return this;
        }
        public Builder mergeOdpolicies(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odpoliciesBuilder_ == null) {
            if (((bitField0_ & 0x00008000) == 0x00008000) &&
                odpolicies_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              odpolicies_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(odpolicies_).mergeFrom(value).buildPartial();
            } else {
              odpolicies_ = value;
            }
            onChanged();
          } else {
            odpoliciesBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00008000;
          return this;
        }
        public Builder clearOdpolicies() {
          if (odpoliciesBuilder_ == null) {
            odpolicies_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            odpoliciesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00008000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getOdpoliciesBuilder() {
          bitField0_ |= 0x00008000;
          onChanged();
          return getOdpoliciesFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdpoliciesOrBuilder() {
          if (odpoliciesBuilder_ != null) {
            return odpoliciesBuilder_.getMessageOrBuilder();
          } else {
            return odpolicies_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getOdpoliciesFieldBuilder() {
          if (odpoliciesBuilder_ == null) {
            odpoliciesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    odpolicies_,
                    getParentForChildren(),
                    isClean());
            odpolicies_ = null;
          }
          return odpoliciesBuilder_;
        }
        
        // repeated .eu.dnetlib.data.proto.StringField odlanguages = 13;
        private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> odlanguages_ =
          java.util.Collections.emptyList();
        private void ensureOdlanguagesIsMutable() {
          if (!((bitField0_ & 0x00010000) == 0x00010000)) {
            odlanguages_ = new java.util.ArrayList<eu.dnetlib.data.proto.FieldTypeProtos.StringField>(odlanguages_);
            bitField0_ |= 0x00010000;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> odlanguagesBuilder_;
        
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> getOdlanguagesList() {
          if (odlanguagesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(odlanguages_);
          } else {
            return odlanguagesBuilder_.getMessageList();
          }
        }
        public int getOdlanguagesCount() {
          if (odlanguagesBuilder_ == null) {
            return odlanguages_.size();
          } else {
            return odlanguagesBuilder_.getCount();
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdlanguages(int index) {
          if (odlanguagesBuilder_ == null) {
            return odlanguages_.get(index);
          } else {
            return odlanguagesBuilder_.getMessage(index);
          }
        }
        public Builder setOdlanguages(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odlanguagesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOdlanguagesIsMutable();
            odlanguages_.set(index, value);
            onChanged();
          } else {
            odlanguagesBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setOdlanguages(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odlanguagesBuilder_ == null) {
            ensureOdlanguagesIsMutable();
            odlanguages_.set(index, builderForValue.build());
            onChanged();
          } else {
            odlanguagesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addOdlanguages(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odlanguagesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOdlanguagesIsMutable();
            odlanguages_.add(value);
            onChanged();
          } else {
            odlanguagesBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addOdlanguages(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odlanguagesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOdlanguagesIsMutable();
            odlanguages_.add(index, value);
            onChanged();
          } else {
            odlanguagesBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addOdlanguages(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odlanguagesBuilder_ == null) {
            ensureOdlanguagesIsMutable();
            odlanguages_.add(builderForValue.build());
            onChanged();
          } else {
            odlanguagesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addOdlanguages(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odlanguagesBuilder_ == null) {
            ensureOdlanguagesIsMutable();
            odlanguages_.add(index, builderForValue.build());
            onChanged();
          } else {
            odlanguagesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllOdlanguages(
            java.lang.Iterable<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringField> values) {
          if (odlanguagesBuilder_ == null) {
            ensureOdlanguagesIsMutable();
            super.addAll(values, odlanguages_);
            onChanged();
          } else {
            odlanguagesBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearOdlanguages() {
          if (odlanguagesBuilder_ == null) {
            odlanguages_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00010000);
            onChanged();
          } else {
            odlanguagesBuilder_.clear();
          }
          return this;
        }
        public Builder removeOdlanguages(int index) {
          if (odlanguagesBuilder_ == null) {
            ensureOdlanguagesIsMutable();
            odlanguages_.remove(index);
            onChanged();
          } else {
            odlanguagesBuilder_.remove(index);
          }
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getOdlanguagesBuilder(
            int index) {
          return getOdlanguagesFieldBuilder().getBuilder(index);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdlanguagesOrBuilder(
            int index) {
          if (odlanguagesBuilder_ == null) {
            return odlanguages_.get(index);  } else {
            return odlanguagesBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
             getOdlanguagesOrBuilderList() {
          if (odlanguagesBuilder_ != null) {
            return odlanguagesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(odlanguages_);
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder addOdlanguagesBuilder() {
          return getOdlanguagesFieldBuilder().addBuilder(
              eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance());
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder addOdlanguagesBuilder(
            int index) {
          return getOdlanguagesFieldBuilder().addBuilder(
              index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance());
        }
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder> 
             getOdlanguagesBuilderList() {
          return getOdlanguagesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getOdlanguagesFieldBuilder() {
          if (odlanguagesBuilder_ == null) {
            odlanguagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    odlanguages_,
                    ((bitField0_ & 0x00010000) == 0x00010000),
                    getParentForChildren(),
                    isClean());
            odlanguages_ = null;
          }
          return odlanguagesBuilder_;
        }
        
        // repeated .eu.dnetlib.data.proto.StringField odcontenttypes = 14;
        private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> odcontenttypes_ =
          java.util.Collections.emptyList();
        private void ensureOdcontenttypesIsMutable() {
          if (!((bitField0_ & 0x00020000) == 0x00020000)) {
            odcontenttypes_ = new java.util.ArrayList<eu.dnetlib.data.proto.FieldTypeProtos.StringField>(odcontenttypes_);
            bitField0_ |= 0x00020000;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> odcontenttypesBuilder_;
        
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> getOdcontenttypesList() {
          if (odcontenttypesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(odcontenttypes_);
          } else {
            return odcontenttypesBuilder_.getMessageList();
          }
        }
        public int getOdcontenttypesCount() {
          if (odcontenttypesBuilder_ == null) {
            return odcontenttypes_.size();
          } else {
            return odcontenttypesBuilder_.getCount();
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getOdcontenttypes(int index) {
          if (odcontenttypesBuilder_ == null) {
            return odcontenttypes_.get(index);
          } else {
            return odcontenttypesBuilder_.getMessage(index);
          }
        }
        public Builder setOdcontenttypes(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odcontenttypesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOdcontenttypesIsMutable();
            odcontenttypes_.set(index, value);
            onChanged();
          } else {
            odcontenttypesBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setOdcontenttypes(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odcontenttypesBuilder_ == null) {
            ensureOdcontenttypesIsMutable();
            odcontenttypes_.set(index, builderForValue.build());
            onChanged();
          } else {
            odcontenttypesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addOdcontenttypes(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odcontenttypesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOdcontenttypesIsMutable();
            odcontenttypes_.add(value);
            onChanged();
          } else {
            odcontenttypesBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addOdcontenttypes(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (odcontenttypesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOdcontenttypesIsMutable();
            odcontenttypes_.add(index, value);
            onChanged();
          } else {
            odcontenttypesBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addOdcontenttypes(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odcontenttypesBuilder_ == null) {
            ensureOdcontenttypesIsMutable();
            odcontenttypes_.add(builderForValue.build());
            onChanged();
          } else {
            odcontenttypesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addOdcontenttypes(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (odcontenttypesBuilder_ == null) {
            ensureOdcontenttypesIsMutable();
            odcontenttypes_.add(index, builderForValue.build());
            onChanged();
          } else {
            odcontenttypesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllOdcontenttypes(
            java.lang.Iterable<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringField> values) {
          if (odcontenttypesBuilder_ == null) {
            ensureOdcontenttypesIsMutable();
            super.addAll(values, odcontenttypes_);
            onChanged();
          } else {
            odcontenttypesBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearOdcontenttypes() {
          if (odcontenttypesBuilder_ == null) {
            odcontenttypes_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00020000);
            onChanged();
          } else {
            odcontenttypesBuilder_.clear();
          }
          return this;
        }
        public Builder removeOdcontenttypes(int index) {
          if (odcontenttypesBuilder_ == null) {
            ensureOdcontenttypesIsMutable();
            odcontenttypes_.remove(index);
            onChanged();
          } else {
            odcontenttypesBuilder_.remove(index);
          }
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getOdcontenttypesBuilder(
            int index) {
          return getOdcontenttypesFieldBuilder().getBuilder(index);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getOdcontenttypesOrBuilder(
            int index) {
          if (odcontenttypesBuilder_ == null) {
            return odcontenttypes_.get(index);  } else {
            return odcontenttypesBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
             getOdcontenttypesOrBuilderList() {
          if (odcontenttypesBuilder_ != null) {
            return odcontenttypesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(odcontenttypes_);
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder addOdcontenttypesBuilder() {
          return getOdcontenttypesFieldBuilder().addBuilder(
              eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance());
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder addOdcontenttypesBuilder(
            int index) {
          return getOdcontenttypesFieldBuilder().addBuilder(
              index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance());
        }
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder> 
             getOdcontenttypesBuilderList() {
          return getOdcontenttypesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getOdcontenttypesFieldBuilder() {
          if (odcontenttypesBuilder_ == null) {
            odcontenttypesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    odcontenttypes_,
                    ((bitField0_ & 0x00020000) == 0x00020000),
                    getParentForChildren(),
                    isClean());
            odcontenttypes_ = null;
          }
          return odcontenttypesBuilder_;
        }
        
        // repeated .eu.dnetlib.data.proto.StringField accessinfopackage = 6;
        private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> accessinfopackage_ =
          java.util.Collections.emptyList();
        private void ensureAccessinfopackageIsMutable() {
          if (!((bitField0_ & 0x00040000) == 0x00040000)) {
            accessinfopackage_ = new java.util.ArrayList<eu.dnetlib.data.proto.FieldTypeProtos.StringField>(accessinfopackage_);
            bitField0_ |= 0x00040000;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> accessinfopackageBuilder_;
        
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField> getAccessinfopackageList() {
          if (accessinfopackageBuilder_ == null) {
            return java.util.Collections.unmodifiableList(accessinfopackage_);
          } else {
            return accessinfopackageBuilder_.getMessageList();
          }
        }
        public int getAccessinfopackageCount() {
          if (accessinfopackageBuilder_ == null) {
            return accessinfopackage_.size();
          } else {
            return accessinfopackageBuilder_.getCount();
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getAccessinfopackage(int index) {
          if (accessinfopackageBuilder_ == null) {
            return accessinfopackage_.get(index);
          } else {
            return accessinfopackageBuilder_.getMessage(index);
          }
        }
        public Builder setAccessinfopackage(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (accessinfopackageBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAccessinfopackageIsMutable();
            accessinfopackage_.set(index, value);
            onChanged();
          } else {
            accessinfopackageBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setAccessinfopackage(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (accessinfopackageBuilder_ == null) {
            ensureAccessinfopackageIsMutable();
            accessinfopackage_.set(index, builderForValue.build());
            onChanged();
          } else {
            accessinfopackageBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAccessinfopackage(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (accessinfopackageBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAccessinfopackageIsMutable();
            accessinfopackage_.add(value);
            onChanged();
          } else {
            accessinfopackageBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addAccessinfopackage(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (accessinfopackageBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAccessinfopackageIsMutable();
            accessinfopackage_.add(index, value);
            onChanged();
          } else {
            accessinfopackageBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addAccessinfopackage(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (accessinfopackageBuilder_ == null) {
            ensureAccessinfopackageIsMutable();
            accessinfopackage_.add(builderForValue.build());
            onChanged();
          } else {
            accessinfopackageBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addAccessinfopackage(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (accessinfopackageBuilder_ == null) {
            ensureAccessinfopackageIsMutable();
            accessinfopackage_.add(index, builderForValue.build());
            onChanged();
          } else {
            accessinfopackageBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllAccessinfopackage(
            java.lang.Iterable<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringField> values) {
          if (accessinfopackageBuilder_ == null) {
            ensureAccessinfopackageIsMutable();
            super.addAll(values, accessinfopackage_);
            onChanged();
          } else {
            accessinfopackageBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearAccessinfopackage() {
          if (accessinfopackageBuilder_ == null) {
            accessinfopackage_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00040000);
            onChanged();
          } else {
            accessinfopackageBuilder_.clear();
          }
          return this;
        }
        public Builder removeAccessinfopackage(int index) {
          if (accessinfopackageBuilder_ == null) {
            ensureAccessinfopackageIsMutable();
            accessinfopackage_.remove(index);
            onChanged();
          } else {
            accessinfopackageBuilder_.remove(index);
          }
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getAccessinfopackageBuilder(
            int index) {
          return getAccessinfopackageFieldBuilder().getBuilder(index);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getAccessinfopackageOrBuilder(
            int index) {
          if (accessinfopackageBuilder_ == null) {
            return accessinfopackage_.get(index);  } else {
            return accessinfopackageBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
             getAccessinfopackageOrBuilderList() {
          if (accessinfopackageBuilder_ != null) {
            return accessinfopackageBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(accessinfopackage_);
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder addAccessinfopackageBuilder() {
          return getAccessinfopackageFieldBuilder().addBuilder(
              eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance());
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder addAccessinfopackageBuilder(
            int index) {
          return getAccessinfopackageFieldBuilder().addBuilder(
              index, eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance());
        }
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder> 
             getAccessinfopackageBuilderList() {
          return getAccessinfopackageFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getAccessinfopackageFieldBuilder() {
          if (accessinfopackageBuilder_ == null) {
            accessinfopackageBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    accessinfopackage_,
                    ((bitField0_ & 0x00040000) == 0x00040000),
                    getParentForChildren(),
                    isClean());
            accessinfopackage_ = null;
          }
          return accessinfopackageBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField releasestartdate = 31;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField releasestartdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> releasestartdateBuilder_;
        public boolean hasReleasestartdate() {
          return ((bitField0_ & 0x00080000) == 0x00080000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getReleasestartdate() {
          if (releasestartdateBuilder_ == null) {
            return releasestartdate_;
          } else {
            return releasestartdateBuilder_.getMessage();
          }
        }
        public Builder setReleasestartdate(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (releasestartdateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            releasestartdate_ = value;
            onChanged();
          } else {
            releasestartdateBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00080000;
          return this;
        }
        public Builder setReleasestartdate(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (releasestartdateBuilder_ == null) {
            releasestartdate_ = builderForValue.build();
            onChanged();
          } else {
            releasestartdateBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00080000;
          return this;
        }
        public Builder mergeReleasestartdate(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (releasestartdateBuilder_ == null) {
            if (((bitField0_ & 0x00080000) == 0x00080000) &&
                releasestartdate_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              releasestartdate_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(releasestartdate_).mergeFrom(value).buildPartial();
            } else {
              releasestartdate_ = value;
            }
            onChanged();
          } else {
            releasestartdateBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00080000;
          return this;
        }
        public Builder clearReleasestartdate() {
          if (releasestartdateBuilder_ == null) {
            releasestartdate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            releasestartdateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00080000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getReleasestartdateBuilder() {
          bitField0_ |= 0x00080000;
          onChanged();
          return getReleasestartdateFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getReleasestartdateOrBuilder() {
          if (releasestartdateBuilder_ != null) {
            return releasestartdateBuilder_.getMessageOrBuilder();
          } else {
            return releasestartdate_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getReleasestartdateFieldBuilder() {
          if (releasestartdateBuilder_ == null) {
            releasestartdateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    releasestartdate_,
                    getParentForChildren(),
                    isClean());
            releasestartdate_ = null;
          }
          return releasestartdateBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField releaseenddate = 32;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField releaseenddate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> releaseenddateBuilder_;
        public boolean hasReleaseenddate() {
          return ((bitField0_ & 0x00100000) == 0x00100000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getReleaseenddate() {
          if (releaseenddateBuilder_ == null) {
            return releaseenddate_;
          } else {
            return releaseenddateBuilder_.getMessage();
          }
        }
        public Builder setReleaseenddate(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (releaseenddateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            releaseenddate_ = value;
            onChanged();
          } else {
            releaseenddateBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00100000;
          return this;
        }
        public Builder setReleaseenddate(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (releaseenddateBuilder_ == null) {
            releaseenddate_ = builderForValue.build();
            onChanged();
          } else {
            releaseenddateBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00100000;
          return this;
        }
        public Builder mergeReleaseenddate(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (releaseenddateBuilder_ == null) {
            if (((bitField0_ & 0x00100000) == 0x00100000) &&
                releaseenddate_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              releaseenddate_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(releaseenddate_).mergeFrom(value).buildPartial();
            } else {
              releaseenddate_ = value;
            }
            onChanged();
          } else {
            releaseenddateBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00100000;
          return this;
        }
        public Builder clearReleaseenddate() {
          if (releaseenddateBuilder_ == null) {
            releaseenddate_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            releaseenddateBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00100000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getReleaseenddateBuilder() {
          bitField0_ |= 0x00100000;
          onChanged();
          return getReleaseenddateFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getReleaseenddateOrBuilder() {
          if (releaseenddateBuilder_ != null) {
            return releaseenddateBuilder_.getMessageOrBuilder();
          } else {
            return releaseenddate_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getReleaseenddateFieldBuilder() {
          if (releaseenddateBuilder_ == null) {
            releaseenddateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    releaseenddate_,
                    getParentForChildren(),
                    isClean());
            releaseenddate_ = null;
          }
          return releaseenddateBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField missionstatementurl = 33;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField missionstatementurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> missionstatementurlBuilder_;
        public boolean hasMissionstatementurl() {
          return ((bitField0_ & 0x00200000) == 0x00200000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getMissionstatementurl() {
          if (missionstatementurlBuilder_ == null) {
            return missionstatementurl_;
          } else {
            return missionstatementurlBuilder_.getMessage();
          }
        }
        public Builder setMissionstatementurl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (missionstatementurlBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            missionstatementurl_ = value;
            onChanged();
          } else {
            missionstatementurlBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00200000;
          return this;
        }
        public Builder setMissionstatementurl(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (missionstatementurlBuilder_ == null) {
            missionstatementurl_ = builderForValue.build();
            onChanged();
          } else {
            missionstatementurlBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00200000;
          return this;
        }
        public Builder mergeMissionstatementurl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (missionstatementurlBuilder_ == null) {
            if (((bitField0_ & 0x00200000) == 0x00200000) &&
                missionstatementurl_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              missionstatementurl_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(missionstatementurl_).mergeFrom(value).buildPartial();
            } else {
              missionstatementurl_ = value;
            }
            onChanged();
          } else {
            missionstatementurlBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00200000;
          return this;
        }
        public Builder clearMissionstatementurl() {
          if (missionstatementurlBuilder_ == null) {
            missionstatementurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            missionstatementurlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00200000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getMissionstatementurlBuilder() {
          bitField0_ |= 0x00200000;
          onChanged();
          return getMissionstatementurlFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getMissionstatementurlOrBuilder() {
          if (missionstatementurlBuilder_ != null) {
            return missionstatementurlBuilder_.getMessageOrBuilder();
          } else {
            return missionstatementurl_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getMissionstatementurlFieldBuilder() {
          if (missionstatementurlBuilder_ == null) {
            missionstatementurlBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    missionstatementurl_,
                    getParentForChildren(),
                    isClean());
            missionstatementurl_ = null;
          }
          return missionstatementurlBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.BoolField dataprovider = 34;
        private eu.dnetlib.data.proto.FieldTypeProtos.BoolField dataprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder> dataproviderBuilder_;
        public boolean hasDataprovider() {
          return ((bitField0_ & 0x00400000) == 0x00400000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolField getDataprovider() {
          if (dataproviderBuilder_ == null) {
            return dataprovider_;
          } else {
            return dataproviderBuilder_.getMessage();
          }
        }
        public Builder setDataprovider(eu.dnetlib.data.proto.FieldTypeProtos.BoolField value) {
          if (dataproviderBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            dataprovider_ = value;
            onChanged();
          } else {
            dataproviderBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00400000;
          return this;
        }
        public Builder setDataprovider(
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder builderForValue) {
          if (dataproviderBuilder_ == null) {
            dataprovider_ = builderForValue.build();
            onChanged();
          } else {
            dataproviderBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00400000;
          return this;
        }
        public Builder mergeDataprovider(eu.dnetlib.data.proto.FieldTypeProtos.BoolField value) {
          if (dataproviderBuilder_ == null) {
            if (((bitField0_ & 0x00400000) == 0x00400000) &&
                dataprovider_ != eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance()) {
              dataprovider_ =
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField.newBuilder(dataprovider_).mergeFrom(value).buildPartial();
            } else {
              dataprovider_ = value;
            }
            onChanged();
          } else {
            dataproviderBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00400000;
          return this;
        }
        public Builder clearDataprovider() {
          if (dataproviderBuilder_ == null) {
            dataprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
            onChanged();
          } else {
            dataproviderBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00400000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder getDataproviderBuilder() {
          bitField0_ |= 0x00400000;
          onChanged();
          return getDataproviderFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getDataproviderOrBuilder() {
          if (dataproviderBuilder_ != null) {
            return dataproviderBuilder_.getMessageOrBuilder();
          } else {
            return dataprovider_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder> 
            getDataproviderFieldBuilder() {
          if (dataproviderBuilder_ == null) {
            dataproviderBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder>(
                    dataprovider_,
                    getParentForChildren(),
                    isClean());
            dataprovider_ = null;
          }
          return dataproviderBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.BoolField serviceprovider = 35;
        private eu.dnetlib.data.proto.FieldTypeProtos.BoolField serviceprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder> serviceproviderBuilder_;
        public boolean hasServiceprovider() {
          return ((bitField0_ & 0x00800000) == 0x00800000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolField getServiceprovider() {
          if (serviceproviderBuilder_ == null) {
            return serviceprovider_;
          } else {
            return serviceproviderBuilder_.getMessage();
          }
        }
        public Builder setServiceprovider(eu.dnetlib.data.proto.FieldTypeProtos.BoolField value) {
          if (serviceproviderBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            serviceprovider_ = value;
            onChanged();
          } else {
            serviceproviderBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00800000;
          return this;
        }
        public Builder setServiceprovider(
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder builderForValue) {
          if (serviceproviderBuilder_ == null) {
            serviceprovider_ = builderForValue.build();
            onChanged();
          } else {
            serviceproviderBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00800000;
          return this;
        }
        public Builder mergeServiceprovider(eu.dnetlib.data.proto.FieldTypeProtos.BoolField value) {
          if (serviceproviderBuilder_ == null) {
            if (((bitField0_ & 0x00800000) == 0x00800000) &&
                serviceprovider_ != eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance()) {
              serviceprovider_ =
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField.newBuilder(serviceprovider_).mergeFrom(value).buildPartial();
            } else {
              serviceprovider_ = value;
            }
            onChanged();
          } else {
            serviceproviderBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00800000;
          return this;
        }
        public Builder clearServiceprovider() {
          if (serviceproviderBuilder_ == null) {
            serviceprovider_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
            onChanged();
          } else {
            serviceproviderBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00800000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder getServiceproviderBuilder() {
          bitField0_ |= 0x00800000;
          onChanged();
          return getServiceproviderFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getServiceproviderOrBuilder() {
          if (serviceproviderBuilder_ != null) {
            return serviceproviderBuilder_.getMessageOrBuilder();
          } else {
            return serviceprovider_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder> 
            getServiceproviderFieldBuilder() {
          if (serviceproviderBuilder_ == null) {
            serviceproviderBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder>(
                    serviceprovider_,
                    getParentForChildren(),
                    isClean());
            serviceprovider_ = null;
          }
          return serviceproviderBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField databaseaccesstype = 36;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField databaseaccesstype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> databaseaccesstypeBuilder_;
        public boolean hasDatabaseaccesstype() {
          return ((bitField0_ & 0x01000000) == 0x01000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatabaseaccesstype() {
          if (databaseaccesstypeBuilder_ == null) {
            return databaseaccesstype_;
          } else {
            return databaseaccesstypeBuilder_.getMessage();
          }
        }
        public Builder setDatabaseaccesstype(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (databaseaccesstypeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            databaseaccesstype_ = value;
            onChanged();
          } else {
            databaseaccesstypeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x01000000;
          return this;
        }
        public Builder setDatabaseaccesstype(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (databaseaccesstypeBuilder_ == null) {
            databaseaccesstype_ = builderForValue.build();
            onChanged();
          } else {
            databaseaccesstypeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x01000000;
          return this;
        }
        public Builder mergeDatabaseaccesstype(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (databaseaccesstypeBuilder_ == null) {
            if (((bitField0_ & 0x01000000) == 0x01000000) &&
                databaseaccesstype_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              databaseaccesstype_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(databaseaccesstype_).mergeFrom(value).buildPartial();
            } else {
              databaseaccesstype_ = value;
            }
            onChanged();
          } else {
            databaseaccesstypeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x01000000;
          return this;
        }
        public Builder clearDatabaseaccesstype() {
          if (databaseaccesstypeBuilder_ == null) {
            databaseaccesstype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            databaseaccesstypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x01000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getDatabaseaccesstypeBuilder() {
          bitField0_ |= 0x01000000;
          onChanged();
          return getDatabaseaccesstypeFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatabaseaccesstypeOrBuilder() {
          if (databaseaccesstypeBuilder_ != null) {
            return databaseaccesstypeBuilder_.getMessageOrBuilder();
          } else {
            return databaseaccesstype_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getDatabaseaccesstypeFieldBuilder() {
          if (databaseaccesstypeBuilder_ == null) {
            databaseaccesstypeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    databaseaccesstype_,
                    getParentForChildren(),
                    isClean());
            databaseaccesstype_ = null;
          }
          return databaseaccesstypeBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField datauploadtype = 37;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField datauploadtype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> datauploadtypeBuilder_;
        public boolean hasDatauploadtype() {
          return ((bitField0_ & 0x02000000) == 0x02000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatauploadtype() {
          if (datauploadtypeBuilder_ == null) {
            return datauploadtype_;
          } else {
            return datauploadtypeBuilder_.getMessage();
          }
        }
        public Builder setDatauploadtype(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (datauploadtypeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            datauploadtype_ = value;
            onChanged();
          } else {
            datauploadtypeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x02000000;
          return this;
        }
        public Builder setDatauploadtype(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (datauploadtypeBuilder_ == null) {
            datauploadtype_ = builderForValue.build();
            onChanged();
          } else {
            datauploadtypeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x02000000;
          return this;
        }
        public Builder mergeDatauploadtype(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (datauploadtypeBuilder_ == null) {
            if (((bitField0_ & 0x02000000) == 0x02000000) &&
                datauploadtype_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              datauploadtype_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(datauploadtype_).mergeFrom(value).buildPartial();
            } else {
              datauploadtype_ = value;
            }
            onChanged();
          } else {
            datauploadtypeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x02000000;
          return this;
        }
        public Builder clearDatauploadtype() {
          if (datauploadtypeBuilder_ == null) {
            datauploadtype_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            datauploadtypeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x02000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getDatauploadtypeBuilder() {
          bitField0_ |= 0x02000000;
          onChanged();
          return getDatauploadtypeFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatauploadtypeOrBuilder() {
          if (datauploadtypeBuilder_ != null) {
            return datauploadtypeBuilder_.getMessageOrBuilder();
          } else {
            return datauploadtype_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getDatauploadtypeFieldBuilder() {
          if (datauploadtypeBuilder_ == null) {
            datauploadtypeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    datauploadtype_,
                    getParentForChildren(),
                    isClean());
            datauploadtype_ = null;
          }
          return datauploadtypeBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField databaseaccessrestriction = 38;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField databaseaccessrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> databaseaccessrestrictionBuilder_;
        public boolean hasDatabaseaccessrestriction() {
          return ((bitField0_ & 0x04000000) == 0x04000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatabaseaccessrestriction() {
          if (databaseaccessrestrictionBuilder_ == null) {
            return databaseaccessrestriction_;
          } else {
            return databaseaccessrestrictionBuilder_.getMessage();
          }
        }
        public Builder setDatabaseaccessrestriction(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (databaseaccessrestrictionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            databaseaccessrestriction_ = value;
            onChanged();
          } else {
            databaseaccessrestrictionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x04000000;
          return this;
        }
        public Builder setDatabaseaccessrestriction(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (databaseaccessrestrictionBuilder_ == null) {
            databaseaccessrestriction_ = builderForValue.build();
            onChanged();
          } else {
            databaseaccessrestrictionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x04000000;
          return this;
        }
        public Builder mergeDatabaseaccessrestriction(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (databaseaccessrestrictionBuilder_ == null) {
            if (((bitField0_ & 0x04000000) == 0x04000000) &&
                databaseaccessrestriction_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              databaseaccessrestriction_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(databaseaccessrestriction_).mergeFrom(value).buildPartial();
            } else {
              databaseaccessrestriction_ = value;
            }
            onChanged();
          } else {
            databaseaccessrestrictionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x04000000;
          return this;
        }
        public Builder clearDatabaseaccessrestriction() {
          if (databaseaccessrestrictionBuilder_ == null) {
            databaseaccessrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            databaseaccessrestrictionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x04000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getDatabaseaccessrestrictionBuilder() {
          bitField0_ |= 0x04000000;
          onChanged();
          return getDatabaseaccessrestrictionFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatabaseaccessrestrictionOrBuilder() {
          if (databaseaccessrestrictionBuilder_ != null) {
            return databaseaccessrestrictionBuilder_.getMessageOrBuilder();
          } else {
            return databaseaccessrestriction_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getDatabaseaccessrestrictionFieldBuilder() {
          if (databaseaccessrestrictionBuilder_ == null) {
            databaseaccessrestrictionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    databaseaccessrestriction_,
                    getParentForChildren(),
                    isClean());
            databaseaccessrestriction_ = null;
          }
          return databaseaccessrestrictionBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField datauploadrestriction = 39;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField datauploadrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> datauploadrestrictionBuilder_;
        public boolean hasDatauploadrestriction() {
          return ((bitField0_ & 0x08000000) == 0x08000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getDatauploadrestriction() {
          if (datauploadrestrictionBuilder_ == null) {
            return datauploadrestriction_;
          } else {
            return datauploadrestrictionBuilder_.getMessage();
          }
        }
        public Builder setDatauploadrestriction(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (datauploadrestrictionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            datauploadrestriction_ = value;
            onChanged();
          } else {
            datauploadrestrictionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x08000000;
          return this;
        }
        public Builder setDatauploadrestriction(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (datauploadrestrictionBuilder_ == null) {
            datauploadrestriction_ = builderForValue.build();
            onChanged();
          } else {
            datauploadrestrictionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x08000000;
          return this;
        }
        public Builder mergeDatauploadrestriction(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (datauploadrestrictionBuilder_ == null) {
            if (((bitField0_ & 0x08000000) == 0x08000000) &&
                datauploadrestriction_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              datauploadrestriction_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(datauploadrestriction_).mergeFrom(value).buildPartial();
            } else {
              datauploadrestriction_ = value;
            }
            onChanged();
          } else {
            datauploadrestrictionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x08000000;
          return this;
        }
        public Builder clearDatauploadrestriction() {
          if (datauploadrestrictionBuilder_ == null) {
            datauploadrestriction_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            datauploadrestrictionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x08000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getDatauploadrestrictionBuilder() {
          bitField0_ |= 0x08000000;
          onChanged();
          return getDatauploadrestrictionFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getDatauploadrestrictionOrBuilder() {
          if (datauploadrestrictionBuilder_ != null) {
            return datauploadrestrictionBuilder_.getMessageOrBuilder();
          } else {
            return datauploadrestriction_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getDatauploadrestrictionFieldBuilder() {
          if (datauploadrestrictionBuilder_ == null) {
            datauploadrestrictionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    datauploadrestriction_,
                    getParentForChildren(),
                    isClean());
            datauploadrestriction_ = null;
          }
          return datauploadrestrictionBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.BoolField versioning = 40;
        private eu.dnetlib.data.proto.FieldTypeProtos.BoolField versioning_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder> versioningBuilder_;
        public boolean hasVersioning() {
          return ((bitField0_ & 0x10000000) == 0x10000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolField getVersioning() {
          if (versioningBuilder_ == null) {
            return versioning_;
          } else {
            return versioningBuilder_.getMessage();
          }
        }
        public Builder setVersioning(eu.dnetlib.data.proto.FieldTypeProtos.BoolField value) {
          if (versioningBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            versioning_ = value;
            onChanged();
          } else {
            versioningBuilder_.setMessage(value);
          }
          bitField0_ |= 0x10000000;
          return this;
        }
        public Builder setVersioning(
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder builderForValue) {
          if (versioningBuilder_ == null) {
            versioning_ = builderForValue.build();
            onChanged();
          } else {
            versioningBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x10000000;
          return this;
        }
        public Builder mergeVersioning(eu.dnetlib.data.proto.FieldTypeProtos.BoolField value) {
          if (versioningBuilder_ == null) {
            if (((bitField0_ & 0x10000000) == 0x10000000) &&
                versioning_ != eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance()) {
              versioning_ =
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField.newBuilder(versioning_).mergeFrom(value).buildPartial();
            } else {
              versioning_ = value;
            }
            onChanged();
          } else {
            versioningBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x10000000;
          return this;
        }
        public Builder clearVersioning() {
          if (versioningBuilder_ == null) {
            versioning_ = eu.dnetlib.data.proto.FieldTypeProtos.BoolField.getDefaultInstance();
            onChanged();
          } else {
            versioningBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x10000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder getVersioningBuilder() {
          bitField0_ |= 0x10000000;
          onChanged();
          return getVersioningFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder getVersioningOrBuilder() {
          if (versioningBuilder_ != null) {
            return versioningBuilder_.getMessageOrBuilder();
          } else {
            return versioning_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder> 
            getVersioningFieldBuilder() {
          if (versioningBuilder_ == null) {
            versioningBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.BoolField, eu.dnetlib.data.proto.FieldTypeProtos.BoolField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.BoolFieldOrBuilder>(
                    versioning_,
                    getParentForChildren(),
                    isClean());
            versioning_ = null;
          }
          return versioningBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField citationguidelineurl = 41;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField citationguidelineurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> citationguidelineurlBuilder_;
        public boolean hasCitationguidelineurl() {
          return ((bitField0_ & 0x20000000) == 0x20000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getCitationguidelineurl() {
          if (citationguidelineurlBuilder_ == null) {
            return citationguidelineurl_;
          } else {
            return citationguidelineurlBuilder_.getMessage();
          }
        }
        public Builder setCitationguidelineurl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (citationguidelineurlBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            citationguidelineurl_ = value;
            onChanged();
          } else {
            citationguidelineurlBuilder_.setMessage(value);
          }
          bitField0_ |= 0x20000000;
          return this;
        }
        public Builder setCitationguidelineurl(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (citationguidelineurlBuilder_ == null) {
            citationguidelineurl_ = builderForValue.build();
            onChanged();
          } else {
            citationguidelineurlBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x20000000;
          return this;
        }
        public Builder mergeCitationguidelineurl(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (citationguidelineurlBuilder_ == null) {
            if (((bitField0_ & 0x20000000) == 0x20000000) &&
                citationguidelineurl_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              citationguidelineurl_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(citationguidelineurl_).mergeFrom(value).buildPartial();
            } else {
              citationguidelineurl_ = value;
            }
            onChanged();
          } else {
            citationguidelineurlBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x20000000;
          return this;
        }
        public Builder clearCitationguidelineurl() {
          if (citationguidelineurlBuilder_ == null) {
            citationguidelineurl_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            citationguidelineurlBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x20000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getCitationguidelineurlBuilder() {
          bitField0_ |= 0x20000000;
          onChanged();
          return getCitationguidelineurlFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getCitationguidelineurlOrBuilder() {
          if (citationguidelineurlBuilder_ != null) {
            return citationguidelineurlBuilder_.getMessageOrBuilder();
          } else {
            return citationguidelineurl_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getCitationguidelineurlFieldBuilder() {
          if (citationguidelineurlBuilder_ == null) {
            citationguidelineurlBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    citationguidelineurl_,
                    getParentForChildren(),
                    isClean());
            citationguidelineurl_ = null;
          }
          return citationguidelineurlBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField qualitymanagementkind = 42;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField qualitymanagementkind_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> qualitymanagementkindBuilder_;
        public boolean hasQualitymanagementkind() {
          return ((bitField0_ & 0x40000000) == 0x40000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getQualitymanagementkind() {
          if (qualitymanagementkindBuilder_ == null) {
            return qualitymanagementkind_;
          } else {
            return qualitymanagementkindBuilder_.getMessage();
          }
        }
        public Builder setQualitymanagementkind(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (qualitymanagementkindBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            qualitymanagementkind_ = value;
            onChanged();
          } else {
            qualitymanagementkindBuilder_.setMessage(value);
          }
          bitField0_ |= 0x40000000;
          return this;
        }
        public Builder setQualitymanagementkind(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (qualitymanagementkindBuilder_ == null) {
            qualitymanagementkind_ = builderForValue.build();
            onChanged();
          } else {
            qualitymanagementkindBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x40000000;
          return this;
        }
        public Builder mergeQualitymanagementkind(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (qualitymanagementkindBuilder_ == null) {
            if (((bitField0_ & 0x40000000) == 0x40000000) &&
                qualitymanagementkind_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              qualitymanagementkind_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(qualitymanagementkind_).mergeFrom(value).buildPartial();
            } else {
              qualitymanagementkind_ = value;
            }
            onChanged();
          } else {
            qualitymanagementkindBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x40000000;
          return this;
        }
        public Builder clearQualitymanagementkind() {
          if (qualitymanagementkindBuilder_ == null) {
            qualitymanagementkind_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            qualitymanagementkindBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x40000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getQualitymanagementkindBuilder() {
          bitField0_ |= 0x40000000;
          onChanged();
          return getQualitymanagementkindFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getQualitymanagementkindOrBuilder() {
          if (qualitymanagementkindBuilder_ != null) {
            return qualitymanagementkindBuilder_.getMessageOrBuilder();
          } else {
            return qualitymanagementkind_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getQualitymanagementkindFieldBuilder() {
          if (qualitymanagementkindBuilder_ == null) {
            qualitymanagementkindBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    qualitymanagementkind_,
                    getParentForChildren(),
                    isClean());
            qualitymanagementkind_ = null;
          }
          return qualitymanagementkindBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField pidsystems = 43;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField pidsystems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> pidsystemsBuilder_;
        public boolean hasPidsystems() {
          return ((bitField0_ & 0x80000000) == 0x80000000);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getPidsystems() {
          if (pidsystemsBuilder_ == null) {
            return pidsystems_;
          } else {
            return pidsystemsBuilder_.getMessage();
          }
        }
        public Builder setPidsystems(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (pidsystemsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            pidsystems_ = value;
            onChanged();
          } else {
            pidsystemsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x80000000;
          return this;
        }
        public Builder setPidsystems(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (pidsystemsBuilder_ == null) {
            pidsystems_ = builderForValue.build();
            onChanged();
          } else {
            pidsystemsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x80000000;
          return this;
        }
        public Builder mergePidsystems(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (pidsystemsBuilder_ == null) {
            if (((bitField0_ & 0x80000000) == 0x80000000) &&
                pidsystems_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              pidsystems_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(pidsystems_).mergeFrom(value).buildPartial();
            } else {
              pidsystems_ = value;
            }
            onChanged();
          } else {
            pidsystemsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x80000000;
          return this;
        }
        public Builder clearPidsystems() {
          if (pidsystemsBuilder_ == null) {
            pidsystems_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            pidsystemsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x80000000);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getPidsystemsBuilder() {
          bitField0_ |= 0x80000000;
          onChanged();
          return getPidsystemsFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getPidsystemsOrBuilder() {
          if (pidsystemsBuilder_ != null) {
            return pidsystemsBuilder_.getMessageOrBuilder();
          } else {
            return pidsystems_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getPidsystemsFieldBuilder() {
          if (pidsystemsBuilder_ == null) {
            pidsystemsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    pidsystems_,
                    getParentForChildren(),
                    isClean());
            pidsystems_ = null;
          }
          return pidsystemsBuilder_;
        }
        
        // optional .eu.dnetlib.data.proto.StringField certificates = 44;
        private eu.dnetlib.data.proto.FieldTypeProtos.StringField certificates_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> certificatesBuilder_;
        public boolean hasCertificates() {
          return ((bitField1_ & 0x00000001) == 0x00000001);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField getCertificates() {
          if (certificatesBuilder_ == null) {
            return certificates_;
          } else {
            return certificatesBuilder_.getMessage();
          }
        }
        public Builder setCertificates(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (certificatesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            certificates_ = value;
            onChanged();
          } else {
            certificatesBuilder_.setMessage(value);
          }
          bitField1_ |= 0x00000001;
          return this;
        }
        public Builder setCertificates(
            eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder builderForValue) {
          if (certificatesBuilder_ == null) {
            certificates_ = builderForValue.build();
            onChanged();
          } else {
            certificatesBuilder_.setMessage(builderForValue.build());
          }
          bitField1_ |= 0x00000001;
          return this;
        }
        public Builder mergeCertificates(eu.dnetlib.data.proto.FieldTypeProtos.StringField value) {
          if (certificatesBuilder_ == null) {
            if (((bitField1_ & 0x00000001) == 0x00000001) &&
                certificates_ != eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance()) {
              certificates_ =
                eu.dnetlib.data.proto.FieldTypeProtos.StringField.newBuilder(certificates_).mergeFrom(value).buildPartial();
            } else {
              certificates_ = value;
            }
            onChanged();
          } else {
            certificatesBuilder_.mergeFrom(value);
          }
          bitField1_ |= 0x00000001;
          return this;
        }
        public Builder clearCertificates() {
          if (certificatesBuilder_ == null) {
            certificates_ = eu.dnetlib.data.proto.FieldTypeProtos.StringField.getDefaultInstance();
            onChanged();
          } else {
            certificatesBuilder_.clear();
          }
          bitField1_ = (bitField1_ & ~0x00000001);
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder getCertificatesBuilder() {
          bitField1_ |= 0x00000001;
          onChanged();
          return getCertificatesFieldBuilder().getBuilder();
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder getCertificatesOrBuilder() {
          if (certificatesBuilder_ != null) {
            return certificatesBuilder_.getMessageOrBuilder();
          } else {
            return certificates_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder> 
            getCertificatesFieldBuilder() {
          if (certificatesBuilder_ == null) {
            certificatesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.StringField, eu.dnetlib.data.proto.FieldTypeProtos.StringField.Builder, eu.dnetlib.data.proto.FieldTypeProtos.StringFieldOrBuilder>(
                    certificates_,
                    getParentForChildren(),
                    isClean());
            certificates_ = null;
          }
          return certificatesBuilder_;
        }
        
        // repeated .eu.dnetlib.data.proto.KeyValue policies = 46;
        private java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.KeyValue> policies_ =
          java.util.Collections.emptyList();
        private void ensurePoliciesIsMutable() {
          if (!((bitField1_ & 0x00000002) == 0x00000002)) {
            policies_ = new java.util.ArrayList<eu.dnetlib.data.proto.FieldTypeProtos.KeyValue>(policies_);
            bitField1_ |= 0x00000002;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.KeyValue, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder, eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder> policiesBuilder_;
        
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.KeyValue> getPoliciesList() {
          if (policiesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(policies_);
          } else {
            return policiesBuilder_.getMessageList();
          }
        }
        public int getPoliciesCount() {
          if (policiesBuilder_ == null) {
            return policies_.size();
          } else {
            return policiesBuilder_.getCount();
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.KeyValue getPolicies(int index) {
          if (policiesBuilder_ == null) {
            return policies_.get(index);
          } else {
            return policiesBuilder_.getMessage(index);
          }
        }
        public Builder setPolicies(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue value) {
          if (policiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePoliciesIsMutable();
            policies_.set(index, value);
            onChanged();
          } else {
            policiesBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setPolicies(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder builderForValue) {
          if (policiesBuilder_ == null) {
            ensurePoliciesIsMutable();
            policies_.set(index, builderForValue.build());
            onChanged();
          } else {
            policiesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addPolicies(eu.dnetlib.data.proto.FieldTypeProtos.KeyValue value) {
          if (policiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePoliciesIsMutable();
            policies_.add(value);
            onChanged();
          } else {
            policiesBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addPolicies(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue value) {
          if (policiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePoliciesIsMutable();
            policies_.add(index, value);
            onChanged();
          } else {
            policiesBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addPolicies(
            eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder builderForValue) {
          if (policiesBuilder_ == null) {
            ensurePoliciesIsMutable();
            policies_.add(builderForValue.build());
            onChanged();
          } else {
            policiesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addPolicies(
            int index, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder builderForValue) {
          if (policiesBuilder_ == null) {
            ensurePoliciesIsMutable();
            policies_.add(index, builderForValue.build());
            onChanged();
          } else {
            policiesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllPolicies(
            java.lang.Iterable<? extends eu.dnetlib.data.proto.FieldTypeProtos.KeyValue> values) {
          if (policiesBuilder_ == null) {
            ensurePoliciesIsMutable();
            super.addAll(values, policies_);
            onChanged();
          } else {
            policiesBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearPolicies() {
          if (policiesBuilder_ == null) {
            policies_ = java.util.Collections.emptyList();
            bitField1_ = (bitField1_ & ~0x00000002);
            onChanged();
          } else {
            policiesBuilder_.clear();
          }
          return this;
        }
        public Builder removePolicies(int index) {
          if (policiesBuilder_ == null) {
            ensurePoliciesIsMutable();
            policies_.remove(index);
            onChanged();
          } else {
            policiesBuilder_.remove(index);
          }
          return this;
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder getPoliciesBuilder(
            int index) {
          return getPoliciesFieldBuilder().getBuilder(index);
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder getPoliciesOrBuilder(
            int index) {
          if (policiesBuilder_ == null) {
            return policies_.get(index);  } else {
            return policiesBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder> 
             getPoliciesOrBuilderList() {
          if (policiesBuilder_ != null) {
            return policiesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(policies_);
          }
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder addPoliciesBuilder() {
          return getPoliciesFieldBuilder().addBuilder(
              eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.getDefaultInstance());
        }
        public eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder addPoliciesBuilder(
            int index) {
          return getPoliciesFieldBuilder().addBuilder(
              index, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.getDefaultInstance());
        }
        public java.util.List<eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder> 
             getPoliciesBuilderList() {
          return getPoliciesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            eu.dnetlib.data.proto.FieldTypeProtos.KeyValue, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder, eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder> 
            getPoliciesFieldBuilder() {
          if (policiesBuilder_ == null) {
            policiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                eu.dnetlib.data.proto.FieldTypeProtos.KeyValue, eu.dnetlib.data.proto.FieldTypeProtos.KeyValue.Builder, eu.dnetlib.data.proto.FieldTypeProtos.KeyValueOrBuilder>(
                    policies_,
                    ((bitField1_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            policies_ = null;
          }
          return policiesBuilder_;
        }
        
        // @@protoc_insertion_point(builder_scope:eu.dnetlib.data.proto.Datasource.Metadata)
      }
      
      static {
        defaultInstance = new Metadata(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:eu.dnetlib.data.proto.Datasource.Metadata)
    }
    
    private int bitField0_;
    // optional .eu.dnetlib.data.proto.Datasource.Metadata metadata = 2;
    public static final int METADATA_FIELD_NUMBER = 2;
    private eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata metadata_;
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata getMetadata() {
      return metadata_;
    }
    public eu.dnetlib.data.proto.DatasourceProtos.Datasource.MetadataOrBuilder getMetadataOrBuilder() {
      return metadata_;
    }
    
    private void initFields() {
      metadata_ = eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (hasMetadata()) {
        if (!getMetadata().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(2, metadata_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, metadata_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static eu.dnetlib.data.proto.DatasourceProtos.Datasource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(eu.dnetlib.data.proto.DatasourceProtos.Datasource prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements eu.dnetlib.data.proto.DatasourceProtos.DatasourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return eu.dnetlib.data.proto.DatasourceProtos.internal_static_eu_dnetlib_data_proto_Datasource_fieldAccessorTable;
      }
      
      // Construct using eu.dnetlib.data.proto.DatasourceProtos.Datasource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDefaultInstance();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return eu.dnetlib.data.proto.DatasourceProtos.Datasource.getDescriptor();
      }
      
      public eu.dnetlib.data.proto.DatasourceProtos.Datasource getDefaultInstanceForType() {
        return eu.dnetlib.data.proto.DatasourceProtos.Datasource.getDefaultInstance();
      }
      
      public eu.dnetlib.data.proto.DatasourceProtos.Datasource build() {
        eu.dnetlib.data.proto.DatasourceProtos.Datasource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private eu.dnetlib.data.proto.DatasourceProtos.Datasource buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        eu.dnetlib.data.proto.DatasourceProtos.Datasource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public eu.dnetlib.data.proto.DatasourceProtos.Datasource buildPartial() {
        eu.dnetlib.data.proto.DatasourceProtos.Datasource result = new eu.dnetlib.data.proto.DatasourceProtos.Datasource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof eu.dnetlib.data.proto.DatasourceProtos.Datasource) {
          return mergeFrom((eu.dnetlib.data.proto.DatasourceProtos.Datasource)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(eu.dnetlib.data.proto.DatasourceProtos.Datasource other) {
        if (other == eu.dnetlib.data.proto.DatasourceProtos.Datasource.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        if (hasMetadata()) {
          if (!getMetadata().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 18: {
              eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.Builder subBuilder = eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.newBuilder();
              if (hasMetadata()) {
                subBuilder.mergeFrom(getMetadata());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setMetadata(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional .eu.dnetlib.data.proto.Datasource.Metadata metadata = 2;
      private eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata metadata_ = eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata, eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.Builder, eu.dnetlib.data.proto.DatasourceProtos.Datasource.MetadataOrBuilder> metadataBuilder_;
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      public Builder setMetadata(eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder setMetadata(
          eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder mergeMetadata(eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              metadata_ != eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDefaultInstance()) {
            metadata_ =
              eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.newBuilder(metadata_).mergeFrom(value).buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.getDefaultInstance();
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      public eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      public eu.dnetlib.data.proto.DatasourceProtos.Datasource.MetadataOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata, eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.Builder, eu.dnetlib.data.proto.DatasourceProtos.Datasource.MetadataOrBuilder> 
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata, eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.Builder, eu.dnetlib.data.proto.DatasourceProtos.Datasource.MetadataOrBuilder>(
                  metadata_,
                  getParentForChildren(),
                  isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:eu.dnetlib.data.proto.Datasource)
    }
    
    static {
      defaultInstance = new Datasource(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:eu.dnetlib.data.proto.Datasource)
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_eu_dnetlib_data_proto_Datasource_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_eu_dnetlib_data_proto_Datasource_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_eu_dnetlib_data_proto_Datasource_Metadata_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_eu_dnetlib_data_proto_Datasource_Metadata_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\020Datasource.proto\022\025eu.dnetlib.data.prot" +
      "o\032\017FieldType.proto\"\310\020\n\nDatasource\022<\n\010met" +
      "adata\030\002 \001(\0132*.eu.dnetlib.data.proto.Data" +
      "source.Metadata\032\373\017\n\010Metadata\0228\n\016datasour" +
      "cetype\030\017 \001(\0132 .eu.dnetlib.data.proto.Qua" +
      "lifier\022?\n\025openairecompatibility\030\021 \001(\0132 ." +
      "eu.dnetlib.data.proto.Qualifier\0228\n\014offic" +
      "ialname\030\001 \001(\0132\".eu.dnetlib.data.proto.St" +
      "ringField\0227\n\013englishname\030\002 \001(\0132\".eu.dnet" +
      "lib.data.proto.StringField\0226\n\nwebsiteurl",
      "\030\003 \001(\0132\".eu.dnetlib.data.proto.StringFie" +
      "ld\0223\n\007logourl\030\004 \001(\0132\".eu.dnetlib.data.pr" +
      "oto.StringField\0228\n\014contactemail\030\005 \001(\0132\"." +
      "eu.dnetlib.data.proto.StringField\022;\n\017nam" +
      "espaceprefix\030\007 \001(\0132\".eu.dnetlib.data.pro" +
      "to.StringField\0224\n\010latitude\030\022 \001(\0132\".eu.dn" +
      "etlib.data.proto.StringField\0225\n\tlongitud" +
      "e\030\023 \001(\0132\".eu.dnetlib.data.proto.StringFi" +
      "eld\022<\n\020dateofvalidation\030\024 \001(\0132\".eu.dnetl" +
      "ib.data.proto.StringField\0227\n\013description",
      "\030\025 \001(\0132\".eu.dnetlib.data.proto.StringFie" +
      "ld\022;\n\010subjects\030- \003(\0132).eu.dnetlib.data.p" +
      "roto.StructuredProperty\022;\n\017odnumberofite" +
      "ms\030\t \001(\0132\".eu.dnetlib.data.proto.StringF" +
      "ield\022?\n\023odnumberofitemsdate\030\n \001(\0132\".eu.d" +
      "netlib.data.proto.StringField\0226\n\nodpolic" +
      "ies\030\014 \001(\0132\".eu.dnetlib.data.proto.String" +
      "Field\0227\n\013odlanguages\030\r \003(\0132\".eu.dnetlib." +
      "data.proto.StringField\022:\n\016odcontenttypes" +
      "\030\016 \003(\0132\".eu.dnetlib.data.proto.StringFie",
      "ld\022=\n\021accessinfopackage\030\006 \003(\0132\".eu.dnetl" +
      "ib.data.proto.StringField\022<\n\020releasestar" +
      "tdate\030\037 \001(\0132\".eu.dnetlib.data.proto.Stri" +
      "ngField\022:\n\016releaseenddate\030  \001(\0132\".eu.dne" +
      "tlib.data.proto.StringField\022?\n\023missionst" +
      "atementurl\030! \001(\0132\".eu.dnetlib.data.proto" +
      ".StringField\0226\n\014dataprovider\030\" \001(\0132 .eu." +
      "dnetlib.data.proto.BoolField\0229\n\017servicep" +
      "rovider\030# \001(\0132 .eu.dnetlib.data.proto.Bo" +
      "olField\022>\n\022databaseaccesstype\030$ \001(\0132\".eu",
      ".dnetlib.data.proto.StringField\022:\n\016datau" +
      "ploadtype\030% \001(\0132\".eu.dnetlib.data.proto." +
      "StringField\022E\n\031databaseaccessrestriction" +
      "\030& \001(\0132\".eu.dnetlib.data.proto.StringFie" +
      "ld\022A\n\025datauploadrestriction\030\' \001(\0132\".eu.d" +
      "netlib.data.proto.StringField\0224\n\nversion" +
      "ing\030( \001(\0132 .eu.dnetlib.data.proto.BoolFi" +
      "eld\022@\n\024citationguidelineurl\030) \001(\0132\".eu.d" +
      "netlib.data.proto.StringField\022A\n\025quality" +
      "managementkind\030* \001(\0132\".eu.dnetlib.data.p",
      "roto.StringField\0226\n\npidsystems\030+ \001(\0132\".e" +
      "u.dnetlib.data.proto.StringField\0228\n\014cert" +
      "ificates\030, \001(\0132\".eu.dnetlib.data.proto.S" +
      "tringField\0221\n\010policies\030. \003(\0132\037.eu.dnetli" +
      "b.data.proto.KeyValueB)\n\025eu.dnetlib.data" +
      ".protoB\020DatasourceProtos"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_eu_dnetlib_data_proto_Datasource_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_eu_dnetlib_data_proto_Datasource_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_eu_dnetlib_data_proto_Datasource_descriptor,
              new java.lang.String[] { "Metadata", },
              eu.dnetlib.data.proto.DatasourceProtos.Datasource.class,
              eu.dnetlib.data.proto.DatasourceProtos.Datasource.Builder.class);
          internal_static_eu_dnetlib_data_proto_Datasource_Metadata_descriptor =
            internal_static_eu_dnetlib_data_proto_Datasource_descriptor.getNestedTypes().get(0);
          internal_static_eu_dnetlib_data_proto_Datasource_Metadata_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_eu_dnetlib_data_proto_Datasource_Metadata_descriptor,
              new java.lang.String[] { "Datasourcetype", "Openairecompatibility", "Officialname", "Englishname", "Websiteurl", "Logourl", "Contactemail", "Namespaceprefix", "Latitude", "Longitude", "Dateofvalidation", "Description", "Subjects", "Odnumberofitems", "Odnumberofitemsdate", "Odpolicies", "Odlanguages", "Odcontenttypes", "Accessinfopackage", "Releasestartdate", "Releaseenddate", "Missionstatementurl", "Dataprovider", "Serviceprovider", "Databaseaccesstype", "Datauploadtype", "Databaseaccessrestriction", "Datauploadrestriction", "Versioning", "Citationguidelineurl", "Qualitymanagementkind", "Pidsystems", "Certificates", "Policies", },
              eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.class,
              eu.dnetlib.data.proto.DatasourceProtos.Datasource.Metadata.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          eu.dnetlib.data.proto.FieldTypeProtos.getDescriptor(),
        }, assigner);
  }
  
  // @@protoc_insertion_point(outer_class_scope)
}
