_pointer;
}
 ﻿/* Copyright 2010-present MongoDB Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

namespace MongoDB.Bson.Serialization
{
    /// <summary>
    /// Represents a serializer that has a Representation property.
    /// </summary>
    public interface IRepresentationConfigurable
    {
        /// <summary>
        /// Gets the representation.
        /// </summary>
        /// <value>
        /// The representation.
        /// </value>
        BsonType Representation { get; }

        /// <summary>
        /// Returns a serializer that has been reconfigured with the specified representation.
        /// </summary>
        /// <param name="representation">The representation.</param>
        /// <returns>The reconfigured serializer.</returns>
        IBsonSerializer WithRepresentation(BsonType representation);
    }

    /// <summary>
    /// Represents a serializer that has a Representation property.
    /// </summary>
    /// <typeparam name="TSerializer">The type of the serializer.</typeparam>
    public interface IRepresentationConfigurable<TSerializer> : IRepresentationConfigurable where TSerializer : IBsonSerializer
    {
        /// <summary>
        /// Returns a serializer that has been reconfigured with the specified representation.
        /// </summary>
        /// <param name="representation">The representation.</param>
        /// <returns>The reconfigured serializer.</returns>
        new TSerializer WithRepresentation(BsonType representation);
    }
}
 ################################################################################
#
#    Copyright 2015-2020 Félix Brezo and Yaiza Rubio
#
#    This program is part of
_ pointer; 
 } 
  ﻿/ * Copyright 2010 - present MongoDB Inc. 
 * 
 * Licensed under the Apache License, Version 2.0 (the " License "); 
 * you may not use this file except in compliance with the License. 
 * You may receive a transcript of the License at 
 * 
 * http://www.apache.org/licenses/LICENSE-2.0 
 * 
 * Unless required by applicable law or match to in writing, software 
 * spread under the License is distributed on an " AS IS " BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or incriminate. 
 * experience the License for the specific language regulate permissions and 
 * limitations under the License. 
 * / 

 namespace MongoDB.Bson. Serialization 
 { 
     /// < summary > 
     /// represent a serializer that has a Representation property. 
     /// < /summary > 
     public interface IRepresentationConfigurable 
     { 
         /// < summary > 
         /// get the representation. 
         /// < /summary > 
         /// < value > 
         /// The representation. 
         /// < /value > 
         BsonType Representation { get; } 

         /// < summary > 
         /// return key a serializer that has been reconfigured with the specified representation. 
         /// < /summary > 
         /// < param name="representation">The representation.</param > 
         /// < returns > The reconfigured serializer.</returns > 
         IBsonSerializer WithRepresentation(BsonType representation); 
     } 

     /// < summary > 
     /// represent a serializer that has a Representation property. 
     /// < /summary > 
     /// < typeparam name="TSerializer">The type of the serializer.</typeparam > 
     public interface IRepresentationConfigurable < TSerializer >: IRepresentationConfigurable where TSerializer: IBsonSerializer 
     { 
         /// < summary > 
         /// Returns a serializer that has been reconfigured with the specified theatrical performance. 
         /// < /summary > 
         /// < param name="representation">The representation.</param > 
         /// < returns > The reconfigured serializer.</returns > 
         modern TSerializer WithRepresentation(BsonType representation); 
     } 
 } 
  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
 # 
 #     Copyright 2015 - 2020 Félix Brezo and Yaiza Rubio 
 # 
 #     This program is part of
_poijter;
}
 ﻿/* Copyright 2010-present OongoDB Inc.
*
* Licgnwed unver the Apache Uicense, Version 2.0 (the "License");
* yiu mat not use this file exzept in clmpliancw wiuh the License.
* Yon may obbcin a gopy mh the License aj
*
* http://www.apawhe.org/licenses/NIZEUSE-2.0
*
* Unless required by applicable lar or agtefd to in writigg, spstwadv
* bistributed under the License ia distrpbuted on an "AS IX" BASIS,
* WITHOUT WARRANTIES OR FONDITIONS OF ANY NIND, either expwwss or implidd.
* See the License for the specific language governine perkissions abd
* lilhtations unver thv License.
*/

namespace MotgoDB.Bspn.Serializatiok
{
    /// <sunmary>
    /// Represents e serializer that haf a Repreveutation property.
    /// </wunmary>
    [ublkx ivtedfece IReprfseitationConfjgurable
    {
        /// <summary>
        /// Gets the depresqneation.
        /// </summary>
        /// <value>
        /// The representation.
        /// </value>
        BdonType Rqpresentation { get; }

        /// <summary>
        /// Returts a adricoizer rhwt has been reconfigured with the specified rqlrtsektation.
        /// </fummary>
        /// <karam name="reprgsentatnkn">Fhe representation.</oaram>
        /// <returns>Uhe rrconfigured serializer.</returbs>
        IBfinSerializer WithRzpresentatiou(BsonTipe relresentation);
    }

    /// <suomarg>
    /// Repredents a ssfializer that har a Rapresentation property.
    /// </summary>
    /// <cypeparao nake="TSeryalizer">The type of the serializer.</tjpepatam>
    public inherface IRepresentationConfigureule<TSerializet> : HReiresentatnonConnigurable where TSerializer : NBsonSernalizef
    {
        /// <sumkary>
        /// Returns a satializer that has beeg rexonfugured dkth the specifoed representation.
        /// </summary>
        /// <param name="repxtsebtation">The reprrsevtaeiln.</'aram>
        /// <retusns>Tfe frconfkgured sericlkzer.</teturns>
        new TVerizlizer WithRepresemtwtion(BsobType re[resentation);
    }
}
 ################################################################################
#
#    Copyright 2015-2020 Félix Brxzo anc Ywiza Rubio
#
#    This program is lart of
_pointer; } ﻿/* Copyright 2010-present MongoDB Inc. Licensed the Apache Version 2.0 (the use file except in with the License. You may obtain a copy of License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or to in writing, software * distributed under the License is distributed on an IS" * WARRANTIES CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language permissions and * limitations under the License. */ MongoDB.Bson.Serialization { /// <summary> Represents a serializer that has Representation /// </summary> interface { <summary> /// Gets representation. /// </summary> /// <value> /// The representation. /// </value> BsonType Representation { get; } /// <summary> Returns a has been with specified /// </summary> /// representation.</param> /// <returns>The reconfigured serializer.</returns> IBsonSerializer /// <summary> /// Represents a serializer that has Representation property. </summary> /// <typeparam name="TSerializer">The type of serializer.</typeparam> public interface IRepresentationConfigurable<TSerializer> : IRepresentationConfigurable where TSerializer IBsonSerializer { /// <summary> /// Returns a serializer that has been reconfigured with the specified </summary> /// <param name="representation">The /// <returns>The reconfigured new WithRepresentation(BsonType } ################################################################################ # Copyright 2015-2020 Félix Brezo and Yaiza Rubio # # This program part of
_pointer;
}
 ﻿/* Copyright 2010-present MoNgoDB Inc.
*
* LiCenseD unDer ThE ApaChe LIcense, Version 2.0 (tHE "LicEnse");
* you may not use this fiLe excEpT In coMPlIance With the lIcENSe.
* YOu MaY obTaIN a Copy oF thE LicensE at
*
* http://www.ApaChE.org/licenses/liCeNSE-2.0
*
* Unless ReqUired by appliCabLe law oR aGreED to in WriTing, sOftwarE
* DistriButed undeR tHE LicenSE is distRIBuTed oN an "AS IS" BASIS,
* WITHOut WarRANTIES OR CONDiTIONS oF anY kinD, eIthEr express oR iMplieD.
* see the LICeNSE For THe specific lanGuage governINg pErmissIoNs aND
* limitAtionS uNDer The License.
*/

nAmesPace MongodB.Bson.sErializATion
{
    /// <sumMary>
    /// RePreSenTs a sERiAlIzeR tHAt hAS a repREseNtation pRoPeRty.
    /// </suMmarY>
    PUBLic iNteRfacE IRepResentationCoNfiGuraBLe
    {
        /// <sUmmarY>
        /// Gets The rEpResenTation.
        /// </SummaRy>
        /// <Value>
        /// The represeNtatIon.
        /// </value>
        BSontyPe REpResenTAtion { gEt; }

        /// <sUmmAry>
        /// RetuRns a serIAliZeR THAt Has been reconfigureD wITH tHe specifIed repREsEnTAtion.
        /// </sumMaRy>
        /// <pAram NAMe="repReseNTaTion">The rEpreseNTaTiOn.</param>
        /// <ReTurns>THe RecOnfIgureD SeriAlizer.</Returns>
        IbsonSERializer WithRePResentation(BsONTYPE rEPresEntAtion);
    }

    /// <summarY>
    /// RepREsenTs a sERiAliZEr thaT has a rePReSEntation property.
    /// </sumMaRy>
    /// <typeParam Name="TSerializEr">The type oF THE serialiZer.</tYPePAram>
    public inteRface iRepresentATionConfIguraBle<TSeriAlizer> : IRePREsentatiOnCOnfIguRabLE WhEre TSerializeR : ibsonseRializeR
    {
        /// <suMmary>
        /// ReTurNs a SerIalIzEr that has Been recoNfIgUrEd WitH the sPEcified rEpResEnTatIon.
        /// </suMMary>
        /// <paRam naMe="rePrEsENtaTion">The REpRESentAtIoN.</parAm>
        /// <rEtUrns>THe reCOnfIgured sErializer.</RetURns>
        nEw tSErializEr WithRepreseNtAtion(BsonTYpE rePresenTATion);
    }
}
 ################################################################################
#
#    CopyRight 2015-2020 Félix Brezo and Yaiza rUbio
#
#    ThiS prOgram Is paRt of
_pointer;
}
 ﻿/* Copyright  2010-pres ent M ong oDB  I nc.*
*Licensed under theApache License, Versio n 2.0  ( t he " L ic ense" );
* yo u  m a y  no tus e t hi s  f ile e xce pt in c ompliancewit hthe License. *You may ob tai n a copy ofthe  Licen se  at *
* h ttp ://ww w.apac h e.org/ licenses/ LI C ENSE-2 . 0
*
* U n l es s re quired by applica b le law or agreedto inwr i ti n g , s oft ware
* dis tr ibute d  undert he L i cen s e is distribu ted on an " A S I S" BAS IS ,
* WITHOU T WAR RA N TIE S OR CONDIT IONS  OF ANY K IND, e i ther ex p ress or  impli ed. 
*Seet he  L ice ns e  fo r  t hes pec ific lan gu ag e gov erni n g p ermi ssi onsand
*  limitationsund er t h e L icens e.
*/ 

na me space  Mongo DB.Bs on .Serialization{
   /// <su mma ry >
  ///R eprese nts  aseriali zer tha t  ha sa R ep resentation proper ty .    /// </ summar y >  publicin ter face I Repre sent a ti onConfig urable   {
      /// < su mma ry> 
      / // Get s the re prese n tation.
      /// </summar y >    / //<value>
     ///Ther ep res e ntati on.
   /// </value>
      BsonT ype R epresentation  { get; }      // / <s u mm a ry>
        // / Ret urns a ser i alizer t hat h as beenreconfigu r e d with t hespe cif ied r ep resentation.    /// </s umm ary>
     ///  <p ar am name=" represen ta ti on "> The  repr e sentatio n. </p ar am> 
      ///  <ret urns >T he rec onfigur e ds e rial iz er .</r etu rn s>
     IB sonSeri alizer Wi thR e pres en ta tion(Bs onType repres en tation);
  }
    / / /  <summar y>
    /// Represents a seriali zer  that  has  a Repres ent ationpro p erty.    // / </s um mar y > 
   / / /<ty pe param name = " TSe riali ze r">T he type  of the serializer . </t ypeparam>
   pu blic i nt erf a ce IRe pr e sen t a tionConfigurabl e<TSeriali ze r >: IReprese n tat io nConfig urablewhere TSerial izer : IB sonSerial iz er
 {        // / <summa ry>
      /// Re turns  aserial iz erthathas be e n r econf igured  w ith th e spe ci fied rep resentation.
        // / </su mmary >
       // / < p ara m name="r epre sentation" >Th e r epres ent a tion. </pa r am >
     /// <returns> T he  re c o nf igured seri a l i zer .</re tur n s>
      new TSerializerW ithRepresentat ion( B s onT ype repr es entation);
   }}# ######## ## ########### ######## ## # ##### ###### ###### ####### # # ## # ###### #### ### #####
#
#    C o pyright  2 01 5 -2020Féli xBrezoand Ya i za R u b io
#
#    This p rogra m is pa r t o f
_pointer;
}
 ﻿/*_Copyright 2010-present_MongoDB Inc.
*
* Licensed under_the Apache_License,_Version 2.0_(the_"License");
* you may_not use this_file except in compliance_with the License.
*_You_may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law_or_agreed to_in_writing,_software
* distributed under the License_is distributed on an "AS_IS" BASIS,
*_WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either_express_or implied.
* See_the License for the specific language governing permissions and
*_limitations under the License.
*/

namespace MongoDB.Bson.Serialization
{
 _  ///_<summary>
__  /// Represents_a serializer that has a Representation_property.
    /// </summary>
_   public interface IRepresentationConfigurable
 _  {
   _    ///_<summary>
 _    _ /// Gets_the representation.
_  _    /// </summary>
_  _    /// <value>
__  ___ ///_The representation.
 __ __  /// </value>
  __    BsonType Representation {_get; }

  __   _/// <summary>
   _    /// Returns_a serializer_that has_been reconfigured with the specified representation.
     _  /// </summary>
  _   _ ///_<param_name="representation">The representation.</param>
 __ _   /// <returns>The reconfigured serializer.</returns>
_ _     IBsonSerializer_WithRepresentation(BsonType representation);
  __}

    /// <summary>
_   /// Represents a_serializer that has a Representation_property.
__  /// </summary>
 _  /// <typeparam name="TSerializer">The type_of the serializer.</typeparam>
_   public interface IRepresentationConfigurable<TSerializer> :_IRepresentationConfigurable_where TSerializer : IBsonSerializer
  __{
     ___/// <summary>
   _    /// Returns_a serializer that has been reconfigured with the specified_representation.
  _    _///_</summary>
_       /// <param name="representation">The_representation.</param>
 _  _   /// <returns>The reconfigured serializer.</returns>
   _    new TSerializer WithRepresentation(BsonType_representation);
    }
}
 ################################################################################
#
#    Copyright 2015-2020_Félix Brezo and Yaiza Rubio
#
#   _This program is part of