More Avro stuff
[aquarium] / src / main / java / gr / grnet / aquarium / message / avro / gen / _WorkingUserState.java
diff --git a/src/main/java/gr/grnet/aquarium/message/avro/gen/_WorkingUserState.java b/src/main/java/gr/grnet/aquarium/message/avro/gen/_WorkingUserState.java
new file mode 100644 (file)
index 0000000..d9217f9
--- /dev/null
@@ -0,0 +1,558 @@
+/**
+ * Autogenerated by Avro
+ * 
+ * DO NOT EDIT DIRECTLY
+ */
+package gr.grnet.aquarium.message.avro.gen;  
+@SuppressWarnings("all")
+public class _WorkingUserState extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
+  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"_WorkingUserState\",\"namespace\":\"gr.grnet.aquarium.message.avro.gen\",\"fields\":[{\"name\":\"userID\",\"type\":\"string\"},{\"name\":\"parentUserStateIDInStore\",\"type\":[\"string\",\"null\"]},{\"name\":\"resourceTypesMap\",\"type\":{\"type\":\"map\",\"values\":{\"type\":\"record\",\"name\":\"_ResourceType\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"unit\",\"type\":\"string\"},{\"name\":\"chargingBehaviorClass\",\"type\":\"string\"}]}}},{\"name\":\"workingStateOfResources\",\"type\":{\"type\":\"map\",\"values\":{\"type\":\"record\",\"name\":\"_WorkingResourcesChargingState\",\"fields\":[{\"name\":\"details\",\"type\":{\"type\":\"map\",\"values\":{\"type\":\"record\",\"name\":\"_AnyValue\",\"fields\":[{\"name\":\"anyValue\",\"type\":[\"null\",\"int\",\"long\",\"boolean\",\"double\",\"bytes\",\"string\"]}]}}},{\"name\":\"stateOfResourceInstance\",\"type\":{\"type\":\"map\",\"values\":{\"type\":\"record\",\"name\":\"_WorkingResourceInstanceChargingState\",\"fields\":[{\"name\":\"details\",\"type\":{\"type\":\"map\",\"values\":\"_AnyValue\"}},{\"name\":\"previousEvents\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"_ResourceEvent\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"aliases\":[\"originalID\",\"ID\"]},{\"name\":\"idInStore\",\"type\":\"string\"},{\"name\":\"occurredMillis\",\"type\":\"long\"},{\"name\":\"receivedMillis\",\"type\":\"long\",\"default\":0},{\"name\":\"userID\",\"type\":\"string\"},{\"name\":\"clientID\",\"type\":\"string\"},{\"name\":\"eventVersion\",\"type\":\"string\",\"default\":\"1.0\"},{\"name\":\"resource\",\"type\":\"string\",\"aliases\":[\"resourceType\"]},{\"name\":\"instanceID\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"},{\"name\":\"details\",\"type\":{\"type\":\"map\",\"values\":\"_AnyValue\"}}]}}},{\"name\":\"implicitlyIssuedStartEvents\",\"type\":{\"type\":\"array\",\"items\":\"_ResourceEvent\"}},{\"name\":\"accumulatingAmount\",\"type\":\"double\"},{\"name\":\"oldAccumulatingAmount\",\"type\":\"double\"},{\"name\":\"previousValue\",\"type\":\"double\"},{\"name\":\"currentValue\",\"type\":\"double\"}]}}}]}}},{\"name\":\"totalCredits\",\"type\":\"double\"},{\"name\":\"workingAgreementHistory\",\"type\":{\"type\":\"record\",\"name\":\"_WorkingAgreementHistory\",\"fields\":[{\"name\":\"agreements\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"_UserAgreement\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"relatedIMEventID\",\"type\":[\"string\",\"null\"]},{\"name\":\"validFromMillis\",\"type\":\"long\"},{\"name\":\"validToMillis\",\"type\":\"long\"},{\"name\":\"role\",\"type\":\"string\"},{\"name\":\"fullPriceTableRef\",\"type\":[{\"type\":\"record\",\"name\":\"_FullPriceTable\",\"fields\":[{\"name\":\"perResource\",\"type\":{\"type\":\"map\",\"values\":{\"type\":\"map\",\"values\":{\"type\":\"record\",\"name\":\"_SelectorValue\",\"fields\":[{\"name\":\"selectorValue\",\"type\":[{\"type\":\"record\",\"name\":\"_EffectivePriceTable\",\"fields\":[{\"name\":\"priceOverrides\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"_EffectiveUnitPrice\",\"fields\":[{\"name\":\"unitPrice\",\"type\":\"double\"},{\"name\":\"when\",\"type\":[{\"type\":\"record\",\"name\":\"_CronSpecTuple\",\"fields\":[{\"name\":\"a\",\"type\":\"string\"},{\"name\":\"b\",\"type\":\"string\"}]},\"null\"]}]}}}]},{\"type\":\"map\",\"values\":\"_SelectorValue\"}]}]}}}}]},\"null\"]}]}}}]}},{\"name\":\"latestUpdateMillis\",\"type\":\"long\"},{\"name\":\"latestResourceEventOccurredMillis\",\"type\":\"long\"},{\"name\":\"billingPeriodOutOfSyncResourceEventsCounter\",\"type\":\"long\"},{\"name\":\"walletEntries\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"_WalletEntry\",\"fields\":[{\"name\":\"userID\",\"type\":\"string\"},{\"name\":\"sumOfCreditsToSubtract\",\"type\":\"double\"},{\"name\":\"oldTotalCredits\",\"type\":\"double\"},{\"name\":\"newTotalCredits\",\"type\":\"double\"},{\"name\":\"whenComputedMillis\",\"type\":\"long\"},{\"name\":\"referenceStartMillis\",\"type\":\"long\"},{\"name\":\"referenceStopMillis\",\"type\":\"long\"},{\"name\":\"billingYear\",\"type\":\"int\"},{\"name\":\"billingMonth\",\"type\":\"int\"},{\"name\":\"billingDay\",\"type\":\"int\"},{\"name\":\"chargeslots\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"_Chargeslot\",\"fields\":[{\"name\":\"startMillis\",\"type\":\"long\"},{\"name\":\"stopMillis\",\"type\":\"long\"},{\"name\":\"unitPrice\",\"type\":\"double\"},{\"name\":\"explanation\",\"type\":\"string\",\"default\":\"\"},{\"name\":\"creditsToSubtract\",\"type\":\"double\"}]}}},{\"name\":\"resourceEvents\",\"type\":{\"type\":\"array\",\"items\":\"_ResourceEvent\"}},{\"name\":\"resourceType\",\"type\":\"_ResourceType\"},{\"name\":\"isSynthetic\",\"type\":\"boolean\",\"default\":false}]}}}]}");
+  @Deprecated public java.lang.CharSequence userID;
+  @Deprecated public java.lang.CharSequence parentUserStateIDInStore;
+  @Deprecated public java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType> resourceTypesMap;
+  @Deprecated public java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState> workingStateOfResources;
+  @Deprecated public double totalCredits;
+  @Deprecated public gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory workingAgreementHistory;
+  @Deprecated public long latestUpdateMillis;
+  @Deprecated public long latestResourceEventOccurredMillis;
+  @Deprecated public long billingPeriodOutOfSyncResourceEventsCounter;
+  @Deprecated public java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry> walletEntries;
+  public org.apache.avro.Schema getSchema() { return SCHEMA$; }
+  // Used by DatumWriter.  Applications should not call. 
+  public java.lang.Object get(int field$) {
+    switch (field$) {
+    case 0: return userID;
+    case 1: return parentUserStateIDInStore;
+    case 2: return resourceTypesMap;
+    case 3: return workingStateOfResources;
+    case 4: return totalCredits;
+    case 5: return workingAgreementHistory;
+    case 6: return latestUpdateMillis;
+    case 7: return latestResourceEventOccurredMillis;
+    case 8: return billingPeriodOutOfSyncResourceEventsCounter;
+    case 9: return walletEntries;
+    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
+    }
+  }
+  // Used by DatumReader.  Applications should not call. 
+  @SuppressWarnings(value="unchecked")
+  public void put(int field$, java.lang.Object value$) {
+    switch (field$) {
+    case 0: userID = (java.lang.CharSequence)value$; break;
+    case 1: parentUserStateIDInStore = (java.lang.CharSequence)value$; break;
+    case 2: resourceTypesMap = (java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType>)value$; break;
+    case 3: workingStateOfResources = (java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState>)value$; break;
+    case 4: totalCredits = (java.lang.Double)value$; break;
+    case 5: workingAgreementHistory = (gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory)value$; break;
+    case 6: latestUpdateMillis = (java.lang.Long)value$; break;
+    case 7: latestResourceEventOccurredMillis = (java.lang.Long)value$; break;
+    case 8: billingPeriodOutOfSyncResourceEventsCounter = (java.lang.Long)value$; break;
+    case 9: walletEntries = (java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry>)value$; break;
+    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
+    }
+  }
+
+  /**
+   * Gets the value of the 'userID' field.
+   */
+  public java.lang.CharSequence getUserID() {
+    return userID;
+  }
+
+  /**
+   * Sets the value of the 'userID' field.
+   * @param value the value to set.
+   */
+  public void setUserID(java.lang.CharSequence value) {
+    this.userID = value;
+  }
+
+  /**
+   * Gets the value of the 'parentUserStateIDInStore' field.
+   */
+  public java.lang.CharSequence getParentUserStateIDInStore() {
+    return parentUserStateIDInStore;
+  }
+
+  /**
+   * Sets the value of the 'parentUserStateIDInStore' field.
+   * @param value the value to set.
+   */
+  public void setParentUserStateIDInStore(java.lang.CharSequence value) {
+    this.parentUserStateIDInStore = value;
+  }
+
+  /**
+   * Gets the value of the 'resourceTypesMap' field.
+   */
+  public java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType> getResourceTypesMap() {
+    return resourceTypesMap;
+  }
+
+  /**
+   * Sets the value of the 'resourceTypesMap' field.
+   * @param value the value to set.
+   */
+  public void setResourceTypesMap(java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType> value) {
+    this.resourceTypesMap = value;
+  }
+
+  /**
+   * Gets the value of the 'workingStateOfResources' field.
+   */
+  public java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState> getWorkingStateOfResources() {
+    return workingStateOfResources;
+  }
+
+  /**
+   * Sets the value of the 'workingStateOfResources' field.
+   * @param value the value to set.
+   */
+  public void setWorkingStateOfResources(java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState> value) {
+    this.workingStateOfResources = value;
+  }
+
+  /**
+   * Gets the value of the 'totalCredits' field.
+   */
+  public java.lang.Double getTotalCredits() {
+    return totalCredits;
+  }
+
+  /**
+   * Sets the value of the 'totalCredits' field.
+   * @param value the value to set.
+   */
+  public void setTotalCredits(java.lang.Double value) {
+    this.totalCredits = value;
+  }
+
+  /**
+   * Gets the value of the 'workingAgreementHistory' field.
+   */
+  public gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory getWorkingAgreementHistory() {
+    return workingAgreementHistory;
+  }
+
+  /**
+   * Sets the value of the 'workingAgreementHistory' field.
+   * @param value the value to set.
+   */
+  public void setWorkingAgreementHistory(gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory value) {
+    this.workingAgreementHistory = value;
+  }
+
+  /**
+   * Gets the value of the 'latestUpdateMillis' field.
+   */
+  public java.lang.Long getLatestUpdateMillis() {
+    return latestUpdateMillis;
+  }
+
+  /**
+   * Sets the value of the 'latestUpdateMillis' field.
+   * @param value the value to set.
+   */
+  public void setLatestUpdateMillis(java.lang.Long value) {
+    this.latestUpdateMillis = value;
+  }
+
+  /**
+   * Gets the value of the 'latestResourceEventOccurredMillis' field.
+   */
+  public java.lang.Long getLatestResourceEventOccurredMillis() {
+    return latestResourceEventOccurredMillis;
+  }
+
+  /**
+   * Sets the value of the 'latestResourceEventOccurredMillis' field.
+   * @param value the value to set.
+   */
+  public void setLatestResourceEventOccurredMillis(java.lang.Long value) {
+    this.latestResourceEventOccurredMillis = value;
+  }
+
+  /**
+   * Gets the value of the 'billingPeriodOutOfSyncResourceEventsCounter' field.
+   */
+  public java.lang.Long getBillingPeriodOutOfSyncResourceEventsCounter() {
+    return billingPeriodOutOfSyncResourceEventsCounter;
+  }
+
+  /**
+   * Sets the value of the 'billingPeriodOutOfSyncResourceEventsCounter' field.
+   * @param value the value to set.
+   */
+  public void setBillingPeriodOutOfSyncResourceEventsCounter(java.lang.Long value) {
+    this.billingPeriodOutOfSyncResourceEventsCounter = value;
+  }
+
+  /**
+   * Gets the value of the 'walletEntries' field.
+   */
+  public java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry> getWalletEntries() {
+    return walletEntries;
+  }
+
+  /**
+   * Sets the value of the 'walletEntries' field.
+   * @param value the value to set.
+   */
+  public void setWalletEntries(java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry> value) {
+    this.walletEntries = value;
+  }
+
+  /** Creates a new _WorkingUserState RecordBuilder */
+  public static gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder newBuilder() {
+    return new gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder();
+  }
+  
+  /** Creates a new _WorkingUserState RecordBuilder by copying an existing Builder */
+  public static gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder newBuilder(gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder other) {
+    return new gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder(other);
+  }
+  
+  /** Creates a new _WorkingUserState RecordBuilder by copying an existing _WorkingUserState instance */
+  public static gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder newBuilder(gr.grnet.aquarium.message.avro.gen._WorkingUserState other) {
+    return new gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder(other);
+  }
+  
+  /**
+   * RecordBuilder for _WorkingUserState instances.
+   */
+  public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase<_WorkingUserState>
+    implements org.apache.avro.data.RecordBuilder<_WorkingUserState> {
+
+    private java.lang.CharSequence userID;
+    private java.lang.CharSequence parentUserStateIDInStore;
+    private java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType> resourceTypesMap;
+    private java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState> workingStateOfResources;
+    private double totalCredits;
+    private gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory workingAgreementHistory;
+    private long latestUpdateMillis;
+    private long latestResourceEventOccurredMillis;
+    private long billingPeriodOutOfSyncResourceEventsCounter;
+    private java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry> walletEntries;
+
+    /** Creates a new Builder */
+    private Builder() {
+      super(gr.grnet.aquarium.message.avro.gen._WorkingUserState.SCHEMA$);
+    }
+    
+    /** Creates a Builder by copying an existing Builder */
+    private Builder(gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder other) {
+      super(other);
+    }
+    
+    /** Creates a Builder by copying an existing _WorkingUserState instance */
+    private Builder(gr.grnet.aquarium.message.avro.gen._WorkingUserState other) {
+            super(gr.grnet.aquarium.message.avro.gen._WorkingUserState.SCHEMA$);
+      if (isValidValue(fields()[0], other.userID)) {
+        this.userID = (java.lang.CharSequence) data().deepCopy(fields()[0].schema(), other.userID);
+        fieldSetFlags()[0] = true;
+      }
+      if (isValidValue(fields()[1], other.parentUserStateIDInStore)) {
+        this.parentUserStateIDInStore = (java.lang.CharSequence) data().deepCopy(fields()[1].schema(), other.parentUserStateIDInStore);
+        fieldSetFlags()[1] = true;
+      }
+      if (isValidValue(fields()[2], other.resourceTypesMap)) {
+        this.resourceTypesMap = (java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType>) data().deepCopy(fields()[2].schema(), other.resourceTypesMap);
+        fieldSetFlags()[2] = true;
+      }
+      if (isValidValue(fields()[3], other.workingStateOfResources)) {
+        this.workingStateOfResources = (java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState>) data().deepCopy(fields()[3].schema(), other.workingStateOfResources);
+        fieldSetFlags()[3] = true;
+      }
+      if (isValidValue(fields()[4], other.totalCredits)) {
+        this.totalCredits = (java.lang.Double) data().deepCopy(fields()[4].schema(), other.totalCredits);
+        fieldSetFlags()[4] = true;
+      }
+      if (isValidValue(fields()[5], other.workingAgreementHistory)) {
+        this.workingAgreementHistory = (gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory) data().deepCopy(fields()[5].schema(), other.workingAgreementHistory);
+        fieldSetFlags()[5] = true;
+      }
+      if (isValidValue(fields()[6], other.latestUpdateMillis)) {
+        this.latestUpdateMillis = (java.lang.Long) data().deepCopy(fields()[6].schema(), other.latestUpdateMillis);
+        fieldSetFlags()[6] = true;
+      }
+      if (isValidValue(fields()[7], other.latestResourceEventOccurredMillis)) {
+        this.latestResourceEventOccurredMillis = (java.lang.Long) data().deepCopy(fields()[7].schema(), other.latestResourceEventOccurredMillis);
+        fieldSetFlags()[7] = true;
+      }
+      if (isValidValue(fields()[8], other.billingPeriodOutOfSyncResourceEventsCounter)) {
+        this.billingPeriodOutOfSyncResourceEventsCounter = (java.lang.Long) data().deepCopy(fields()[8].schema(), other.billingPeriodOutOfSyncResourceEventsCounter);
+        fieldSetFlags()[8] = true;
+      }
+      if (isValidValue(fields()[9], other.walletEntries)) {
+        this.walletEntries = (java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry>) data().deepCopy(fields()[9].schema(), other.walletEntries);
+        fieldSetFlags()[9] = true;
+      }
+    }
+
+    /** Gets the value of the 'userID' field */
+    public java.lang.CharSequence getUserID() {
+      return userID;
+    }
+    
+    /** Sets the value of the 'userID' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setUserID(java.lang.CharSequence value) {
+      validate(fields()[0], value);
+      this.userID = value;
+      fieldSetFlags()[0] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'userID' field has been set */
+    public boolean hasUserID() {
+      return fieldSetFlags()[0];
+    }
+    
+    /** Clears the value of the 'userID' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearUserID() {
+      userID = null;
+      fieldSetFlags()[0] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'parentUserStateIDInStore' field */
+    public java.lang.CharSequence getParentUserStateIDInStore() {
+      return parentUserStateIDInStore;
+    }
+    
+    /** Sets the value of the 'parentUserStateIDInStore' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setParentUserStateIDInStore(java.lang.CharSequence value) {
+      validate(fields()[1], value);
+      this.parentUserStateIDInStore = value;
+      fieldSetFlags()[1] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'parentUserStateIDInStore' field has been set */
+    public boolean hasParentUserStateIDInStore() {
+      return fieldSetFlags()[1];
+    }
+    
+    /** Clears the value of the 'parentUserStateIDInStore' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearParentUserStateIDInStore() {
+      parentUserStateIDInStore = null;
+      fieldSetFlags()[1] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'resourceTypesMap' field */
+    public java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType> getResourceTypesMap() {
+      return resourceTypesMap;
+    }
+    
+    /** Sets the value of the 'resourceTypesMap' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setResourceTypesMap(java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType> value) {
+      validate(fields()[2], value);
+      this.resourceTypesMap = value;
+      fieldSetFlags()[2] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'resourceTypesMap' field has been set */
+    public boolean hasResourceTypesMap() {
+      return fieldSetFlags()[2];
+    }
+    
+    /** Clears the value of the 'resourceTypesMap' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearResourceTypesMap() {
+      resourceTypesMap = null;
+      fieldSetFlags()[2] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'workingStateOfResources' field */
+    public java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState> getWorkingStateOfResources() {
+      return workingStateOfResources;
+    }
+    
+    /** Sets the value of the 'workingStateOfResources' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setWorkingStateOfResources(java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState> value) {
+      validate(fields()[3], value);
+      this.workingStateOfResources = value;
+      fieldSetFlags()[3] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'workingStateOfResources' field has been set */
+    public boolean hasWorkingStateOfResources() {
+      return fieldSetFlags()[3];
+    }
+    
+    /** Clears the value of the 'workingStateOfResources' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearWorkingStateOfResources() {
+      workingStateOfResources = null;
+      fieldSetFlags()[3] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'totalCredits' field */
+    public java.lang.Double getTotalCredits() {
+      return totalCredits;
+    }
+    
+    /** Sets the value of the 'totalCredits' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setTotalCredits(double value) {
+      validate(fields()[4], value);
+      this.totalCredits = value;
+      fieldSetFlags()[4] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'totalCredits' field has been set */
+    public boolean hasTotalCredits() {
+      return fieldSetFlags()[4];
+    }
+    
+    /** Clears the value of the 'totalCredits' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearTotalCredits() {
+      fieldSetFlags()[4] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'workingAgreementHistory' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory getWorkingAgreementHistory() {
+      return workingAgreementHistory;
+    }
+    
+    /** Sets the value of the 'workingAgreementHistory' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setWorkingAgreementHistory(gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory value) {
+      validate(fields()[5], value);
+      this.workingAgreementHistory = value;
+      fieldSetFlags()[5] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'workingAgreementHistory' field has been set */
+    public boolean hasWorkingAgreementHistory() {
+      return fieldSetFlags()[5];
+    }
+    
+    /** Clears the value of the 'workingAgreementHistory' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearWorkingAgreementHistory() {
+      workingAgreementHistory = null;
+      fieldSetFlags()[5] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'latestUpdateMillis' field */
+    public java.lang.Long getLatestUpdateMillis() {
+      return latestUpdateMillis;
+    }
+    
+    /** Sets the value of the 'latestUpdateMillis' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setLatestUpdateMillis(long value) {
+      validate(fields()[6], value);
+      this.latestUpdateMillis = value;
+      fieldSetFlags()[6] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'latestUpdateMillis' field has been set */
+    public boolean hasLatestUpdateMillis() {
+      return fieldSetFlags()[6];
+    }
+    
+    /** Clears the value of the 'latestUpdateMillis' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearLatestUpdateMillis() {
+      fieldSetFlags()[6] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'latestResourceEventOccurredMillis' field */
+    public java.lang.Long getLatestResourceEventOccurredMillis() {
+      return latestResourceEventOccurredMillis;
+    }
+    
+    /** Sets the value of the 'latestResourceEventOccurredMillis' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setLatestResourceEventOccurredMillis(long value) {
+      validate(fields()[7], value);
+      this.latestResourceEventOccurredMillis = value;
+      fieldSetFlags()[7] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'latestResourceEventOccurredMillis' field has been set */
+    public boolean hasLatestResourceEventOccurredMillis() {
+      return fieldSetFlags()[7];
+    }
+    
+    /** Clears the value of the 'latestResourceEventOccurredMillis' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearLatestResourceEventOccurredMillis() {
+      fieldSetFlags()[7] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'billingPeriodOutOfSyncResourceEventsCounter' field */
+    public java.lang.Long getBillingPeriodOutOfSyncResourceEventsCounter() {
+      return billingPeriodOutOfSyncResourceEventsCounter;
+    }
+    
+    /** Sets the value of the 'billingPeriodOutOfSyncResourceEventsCounter' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setBillingPeriodOutOfSyncResourceEventsCounter(long value) {
+      validate(fields()[8], value);
+      this.billingPeriodOutOfSyncResourceEventsCounter = value;
+      fieldSetFlags()[8] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'billingPeriodOutOfSyncResourceEventsCounter' field has been set */
+    public boolean hasBillingPeriodOutOfSyncResourceEventsCounter() {
+      return fieldSetFlags()[8];
+    }
+    
+    /** Clears the value of the 'billingPeriodOutOfSyncResourceEventsCounter' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearBillingPeriodOutOfSyncResourceEventsCounter() {
+      fieldSetFlags()[8] = false;
+      return this;
+    }
+
+    /** Gets the value of the 'walletEntries' field */
+    public java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry> getWalletEntries() {
+      return walletEntries;
+    }
+    
+    /** Sets the value of the 'walletEntries' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder setWalletEntries(java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry> value) {
+      validate(fields()[9], value);
+      this.walletEntries = value;
+      fieldSetFlags()[9] = true;
+      return this; 
+    }
+    
+    /** Checks whether the 'walletEntries' field has been set */
+    public boolean hasWalletEntries() {
+      return fieldSetFlags()[9];
+    }
+    
+    /** Clears the value of the 'walletEntries' field */
+    public gr.grnet.aquarium.message.avro.gen._WorkingUserState.Builder clearWalletEntries() {
+      walletEntries = null;
+      fieldSetFlags()[9] = false;
+      return this;
+    }
+
+    @Override
+    public _WorkingUserState build() {
+      try {
+        _WorkingUserState record = new _WorkingUserState();
+        record.userID = fieldSetFlags()[0] ? this.userID : (java.lang.CharSequence) defaultValue(fields()[0]);
+        record.parentUserStateIDInStore = fieldSetFlags()[1] ? this.parentUserStateIDInStore : (java.lang.CharSequence) defaultValue(fields()[1]);
+        record.resourceTypesMap = fieldSetFlags()[2] ? this.resourceTypesMap : (java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._ResourceType>) defaultValue(fields()[2]);
+        record.workingStateOfResources = fieldSetFlags()[3] ? this.workingStateOfResources : (java.util.Map<java.lang.CharSequence,gr.grnet.aquarium.message.avro.gen._WorkingResourcesChargingState>) defaultValue(fields()[3]);
+        record.totalCredits = fieldSetFlags()[4] ? this.totalCredits : (java.lang.Double) defaultValue(fields()[4]);
+        record.workingAgreementHistory = fieldSetFlags()[5] ? this.workingAgreementHistory : (gr.grnet.aquarium.message.avro.gen._WorkingAgreementHistory) defaultValue(fields()[5]);
+        record.latestUpdateMillis = fieldSetFlags()[6] ? this.latestUpdateMillis : (java.lang.Long) defaultValue(fields()[6]);
+        record.latestResourceEventOccurredMillis = fieldSetFlags()[7] ? this.latestResourceEventOccurredMillis : (java.lang.Long) defaultValue(fields()[7]);
+        record.billingPeriodOutOfSyncResourceEventsCounter = fieldSetFlags()[8] ? this.billingPeriodOutOfSyncResourceEventsCounter : (java.lang.Long) defaultValue(fields()[8]);
+        record.walletEntries = fieldSetFlags()[9] ? this.walletEntries : (java.util.List<gr.grnet.aquarium.message.avro.gen._WalletEntry>) defaultValue(fields()[9]);
+        return record;
+      } catch (Exception e) {
+        throw new org.apache.avro.AvroRuntimeException(e);
+      }
+    }
+  }
+}