code: public String addOffering(Offering newOffering) {
          if (newOffering == null)
              return null;
  
          String offeringName = newOffering.getName();
  
          /* if the offering was already present in the repository it is removed */
          if (offeringManager.getOffering(offeringName) != null) {
              offeringManager.removeOffering(offeringName);
          }
  
          offeringManager.addOffering(newOffering);
  
          /* updates the list of all node templates */
          this.offeringNodeTemplates.add(newOffering.getNodeTemplate());
          totalCrawledOfferings++;
  
          return offeringName;
      }
docs: Inserts or eventually updates an offering in the local repository
  
  @param newOffering The <code>Offering</code> object instance representing the new offering to insert.
  @return the ID assigned to the newly-inserted offering.