protected Foo toUnwrappedModel(Foo foo) {
    if (foo instanceof FooImpl) {
      return foo;
    }

    FooImpl fooImpl = new FooImpl();

    fooImpl.setNew(foo.isNew());
    fooImpl.setPrimaryKey(foo.getPrimaryKey());

    fooImpl.setFooId(foo.getFooId());
    fooImpl.setGroupId(foo.getGroupId());
    fooImpl.setCompanyId(foo.getCompanyId());
    fooImpl.setUserId(foo.getUserId());
    fooImpl.setUserName(foo.getUserName());
    fooImpl.setCreateDate(foo.getCreateDate());
    fooImpl.setModifiedDate(foo.getModifiedDate());
    fooImpl.setField1(foo.getField1());
    fooImpl.setField2(foo.isField2());
    fooImpl.setField3(foo.getField3());
    fooImpl.setField4(foo.getField4());
    fooImpl.setField5(foo.getField5());

    return fooImpl;
  }