code: public ClassFileBuilder prepare() throws SupportException {
  
          // Add a property to the reference for each primary key in the master
          List<StorableProperty> masterPkProps = new ArrayList<StorableProperty>
              (mMasterStorableInfo.getPrimaryKeyProperties().values());
  
          // Sort master primary keys, to ensure consistent behavior.
          Collections.sort(masterPkProps,
                           BeanComparator.forClass(StorableProperty.class).orderBy("name"));
  
          for (StorableProperty masterPkProp : masterPkProps) {
              // Some of them may have already been added as explicit
              // primary keys, to articulate sort direction.
              if (!mBuilder.hasProperty(masterPkProp.getName())) {
                  addProperty(masterPkProp);
                  // For non-unique indexes, *all* master pk properties are members of the
                  // generated primary key, in order to support duplicates.
                  if (!mIsUnique) {
                      mPrimaryKey.addProperty(masterPkProp.getName());
                      mExtraPkProps.add(masterPkProp.getName());
                  }
              }
          }
  
          // Ensure that a version property exists in the index entry, if the
          // user storable had one.
          if (!mBuilder.isVersioned()) {
              StorableProperty versionProperty = mMasterStorableInfo.getVersionProperty();
              if (versionProperty != null) {
                  addProperty(versionProperty);
              }
          }
  
          ClassFileBuilder cfg = mBuilder.prepare();
          addSpecialMethods(cfg.getClassFile());
          return cfg;
      }
docs: /*
  (non-Javadoc)
  
  @see com.amazon.carbonado.synthetic.SyntheticBuilder#prepare()