code: private void addSpecialMethods(ClassFile cf) throws SupportException {
          // Generate safe names for special methods.
          {
              mCopyToMasterPkMethodName =
                  generateSafeMethodName(mMasterStorableInfo, COPY_TO_MASTER_PK_PREFIX);
  
              mCopyFromMasterMethodName =
                  generateSafeMethodName(mMasterStorableInfo, COPY_FROM_MASTER_PREFIX);
  
              mIsConsistentMethodName =
                  generateSafeMethodName(mMasterStorableInfo, IS_CONSISTENT_PREFIX);
          }
  
          // Add methods which copies properties between master and index entry.
          addCopyMethod(cf, mCopyFromMasterMethodName);
          addCopyMethod(cf, mCopyToMasterPkMethodName);
  
          TypeDesc masterStorableType = TypeDesc.forClass(mMasterStorableClass);
  
          // Add a method which tests all properties of index entry object
          // against master object, excluding version and derived properties.
          {
              TypeDesc[] params = new TypeDesc[] {masterStorableType};
              MethodInfo mi = cf.addMethod
                  (Modifiers.PUBLIC, mIsConsistentMethodName, TypeDesc.BOOLEAN, params);
              CodeBuilder b = new CodeBuilder(mi);
  
              for (StorableProperty prop : mCommonProps) {
                  if (prop.isVersion() || prop.isDerived()) {
                      continue;
                  }
                  Label propsAreEqual = b.createLabel();
                  addPropertyTest(b, prop, b.getParameter(0), propsAreEqual);
                  propsAreEqual.setLocation();
              }
  
              b.loadConstant(true);
              b.returnValue(TypeDesc.BOOLEAN);
          }
      }
docs: Create methods for copying properties and testing properties.
  
  @throws amazon.carbonado.SupportException