@Override
  public List<MethodDeclaration> getMethods(EmitContext context, ModelDeclaration model)
      throws IOException {
    if (isTarget(model) == false) {
      return Collections.emptyList();
    }
    CacheSupportTrait trait = model.getTrait(CacheSupportTrait.class);
    assert trait != null;

    List<MethodDeclaration> results = Lists.create();
    results.add(createModelVersionMethod(context, model, trait));
    results.add(createTimestampColumnMethod(context, model, trait.getTimestamp()));
    results.add(createSystemIdMethod(context, model, trait.getSid()));
    results.add(createDeletedMethod(context, model, trait.getDeleteFlag()));
    return results;
  }