Advertisement
agmike

USerializationInfo

Mar 30th, 2014
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.53 KB | None | 0 0
  1. // New realisation of Get/SetProperties mechanic for sum example sp air object
  2.  
  3.  
  4. // BEFORE
  5.  
  6. class SPAO_Relay isclass SPAirObject
  7. {
  8.     public float FeedDiam = 16.0f;
  9.     public float DumpDiam = 8.0f;
  10.     public float Sensivity = 5.0f;
  11.     public float MinOpenDelta = 2.0f;
  12.     public float MaxOpenDelta = 30.0f;
  13.    
  14.     public void Init(SPAirScheme scheme)
  15.     {
  16.         // irrelevant
  17.     }
  18.    
  19.     public Soup GetProperties()
  20.     {
  21.         Soup sp = inherited();
  22.         sp.SetNamedTag("feed-diam", FeedDiam);
  23.         sp.SetNamedTag("dump-diam", DumpDiam);
  24.         sp.SetNamedTag("sensivity", Sensivity);
  25.         sp.SetNamedTag("min-open-delta", MinOpenDelta);
  26.         sp.SetNamedTag("max-open-delta", MaxOpenDelta);
  27.         return sp;
  28.     }
  29.    
  30.     public void SetProperties(Soup sp)
  31.     {
  32.         inherited(sp);
  33.         FeedDiam = SPHelper.GetFloat(sp, "feed-diam", FeedDiam);
  34.         DumpDiam = SPHelper.GetFloat(sp, "dump-diam", DumpDiam);
  35.         Sensivity = SPHelper.GetFloat(sp, "sensivity", Sensivity);
  36.         MinOpenDelta = SPHelper.GetFloat(sp, "min-open-delta", MinOpenDelta);
  37.         MaxOpenDelta = SPHelper.GetFloat(sp, "max-open-delta", MaxOpenDelta);
  38.     }
  39.    
  40.     public void Update(float dt)
  41.     {
  42.         // irrelevant
  43.     }
  44. };
  45.  
  46.  
  47. // AFTER
  48.  
  49. class SPAO_Relay isclass SPAirObject
  50. {
  51.     public float FeedDiam     = 16.0f;
  52.     public float DumpDiam     = 8.0f;
  53.     public float Sensivity    = 5.0f;
  54.     public float MinOpenDelta = 2.0f;
  55.     public float MaxOpenDelta = 30.0f;
  56.    
  57.     public void Init(SPAirScheme scheme)
  58.     {
  59.         // irrelevant
  60.     }
  61.    
  62.     public void Serialize(USerializationInfo si)
  63.     {
  64.         inherited(si);
  65.         FeedDiam     = si.Post("feed-diam",      FeedDiam    );
  66.         DumpDiam     = si.Post("dump-diam",      DumpDiam    );
  67.         Sensivity    = si.Post("sensivity",      Sensivity   );
  68.         MinOpenDelta = si.Post("min-open-delta", MinOpenDelta);
  69.         MaxOpenDelta = si.Post("max-open-delta", MaxOpenDelta);
  70.     }
  71.    
  72.     public void Update(float dt)
  73.     {
  74.         // irrelevant
  75.     }
  76. };
  77.  
  78. // BECAUSE WE HAVE
  79.  
  80. class USerializationInfo
  81. {
  82.     public Soup Data;
  83.  
  84.     public T Post(string name, T value);
  85. };
  86.  
  87.  
  88. class USerializer
  89. {
  90.     public T Post(string name, T value)
  91.     {
  92.         Data.SetNamedTag(name, value);
  93.         return value;
  94.     }
  95. };
  96.  
  97. class UDeserializer
  98. {
  99.     public T Post(string name, T value)
  100.     {
  101.         T storedValue = Data.GetNamedTagAsT(name, value);
  102.         return storedValue;
  103.     }
  104. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement