// Path: src/main/java/io/github/howiefh/jeews/modules/sys/controller/RoleController.java
// @RestController
// @RequestMapping("/roles")
// @ExposesResourceFor(Role.class)
// public class RoleController {
//     @Autowired
//     private RoleService roleService;
// 
//     @Autowired
//     private EntityLinks entityLinks;
// 
//     @RequiresPermissions("role:view")
//     @RequestMapping(value = "", method = RequestMethod.GET)
//     public HttpEntity<Resources<RoleResource>> getList() {
//         List<Role> roles = roleService.findAll();
//         Resources<RoleResource> resources = ResourcesAssembler.toResources(roles, new RoleResourceAssembler(),
//                 RoleController.class);
//         return new ResponseEntity<>(resources, HttpStatus.OK);
//     }
// 
//     @RequiresPermissions("role:view")
//     @RequestMapping(value = "/{id}", method = RequestMethod.GET)
//     public RoleResource get(@PathVariable long id) {
//         return new RoleResourceAssembler().toResource(roleService.findOne(id));
//     }
// 
//     @RequiresPermissions("role:create")
//     @RequestMapping(value = "", method = RequestMethod.POST)
//     public ResponseEntity<RoleResource> create(HttpEntity<Role> entity, HttpServletRequest request)
//             throws URISyntaxException {
//         Role role = entity.getBody();
//         roleService.save(role);
//         HttpHeaders headers = new HttpHeaders();
//         RoleResource roleResource = new RoleResourceAssembler().toResource(role);
//         headers.setLocation(entityLinks.linkForSingleResource(Role.class, role.getId()).toUri());
//         ResponseEntity<RoleResource> responseEntity = new ResponseEntity<RoleResource>(roleResource, headers,
//                 HttpStatus.CREATED);
//         return responseEntity;
//     }
// 
//     @RequiresPermissions("role:update")
//     @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
//     public RoleResource update(@RequestBody Role role) {
//         roleService.update(role);
//         return new RoleResourceAssembler().toResource(role);
//     }
// 
//     @RequiresPermissions("role:delete")
//     @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
//     @ResponseStatus(HttpStatus.NO_CONTENT)
//     public void delete(@PathVariable("id") Long id) {
//         roleService.delete(id);
//     }
// 
//     @RequiresPermissions("role:delete")
//     @RequestMapping(value = "", method = RequestMethod.DELETE)
//     @ResponseStatus(HttpStatus.NO_CONTENT)
//     public void deleteBatch(@RequestBody List<Long> ids) {
//         roleService.deleteBatch(ids);
//     }
// }
// 
// Path: src/main/java/io/github/howiefh/jeews/modules/sys/entity/Role.java
// @Relation(value = "role", collectionRelation = "roles")
// public class Role extends DataEntity {
//     private static final long serialVersionUID = 1744395330761664879L;
// 
//     /**
//      * 名称 - sys_role.name
//      */
//     private String name;
// 
//     /**
//      * 中文名称 - sys_role.cnname
//      */
//     private String cnname;
// 
//     /**
//      * 是否可用 - sys_role.available
//      */
//     private Boolean available;
// 
//     /**
//      * 角色可以访问的菜单
//      */
//     private Set<Menu> menus;
// 
//     public Role() {
//     }
// 
//     /**
//      * 构造器，从json整型数据可以构造该对象
//      */
//     public Role(Long id) {
//         this.id = id;
//     }
// 
//     /**
//      * Gets the value of the database column sys_role.name
//      *
//      * @return 名称
//      */
//     public String getName() {
//         return name;
//     }
// 
//     /**
//      * Sets the value of the database column sys_role.name
//      *
//      * @param name
//      *            名称
//      */
//     public void setName(String name) {
//         this.name = name == null ? null : name.trim();
//     }
// 
//     /**
//      * Gets the value of the database column sys_role.cnname
//      *
//      * @return 中文名称
//      */
//     public String getCnname() {
//         return cnname;
//     }
// 
//     /**
//      * Sets the value of the database column sys_role.cnname
//      *
//      * @param cnname
//      *            中文名称
//      */
//     public void setCnname(String cnname) {
//         this.cnname = cnname == null ? null : cnname.trim();
//     }
// 
//     /**
//      * Gets the value of the database column sys_role.available
//      *
//      * @return 是否可用
//      */
//     public Boolean getAvailable() {
//         return available;
//     }
// 
//     /**
//      * Sets the value of the database column sys_role.available
//      *
//      * @param available
//      *            是否可用
//      */
//     public void setAvailable(Boolean available) {
//         this.available = available;
//     }
// 
//     public Set<Menu> getMenus() {
//         return menus;
//     }
// 
//     public void setMenus(Set<Menu> menus) {
//         this.menus = menus;
//     }
// }


import io.github.howiefh.jeews.modules.sys.controller.RoleController;
import io.github.howiefh.jeews.modules.sys.entity.Role;
import org.springframework.hateoas.mvc.ResourceAssemblerSupport;
package io.github.howiefh.jeews.modules.sys.resource;



public class RoleResourceAssembler extends ResourceAssemblerSupport<Role, RoleResource> {

    public RoleResourceAssembler() {
        super(RoleController.class, RoleResource.class);
    }

    @Override
// Path: src/main/java/io/github/howiefh/jeews/modules/sys/controller/RoleController.java
// @RestController
// @RequestMapping("/roles")
// @ExposesResourceFor(Role.class)
// public class RoleController {
//     @Autowired
//     private RoleService roleService;
// 
//     @Autowired
//     private EntityLinks entityLinks;
// 
//     @RequiresPermissions("role:view")
//     @RequestMapping(value = "", method = RequestMethod.GET)
//     public HttpEntity<Resources<RoleResource>> getList() {
//         List<Role> roles = roleService.findAll();
//         Resources<RoleResource> resources = ResourcesAssembler.toResources(roles, new RoleResourceAssembler(),
//                 RoleController.class);
//         return new ResponseEntity<>(resources, HttpStatus.OK);
//     }
// 
//     @RequiresPermissions("role:view")
//     @RequestMapping(value = "/{id}", method = RequestMethod.GET)
//     public RoleResource get(@PathVariable long id) {
//         return new RoleResourceAssembler().toResource(roleService.findOne(id));
//     }
// 
//     @RequiresPermissions("role:create")
//     @RequestMapping(value = "", method = RequestMethod.POST)
//     public ResponseEntity<RoleResource> create(HttpEntity<Role> entity, HttpServletRequest request)
//             throws URISyntaxException {
//         Role role = entity.getBody();
//         roleService.save(role);
//         HttpHeaders headers = new HttpHeaders();
//         RoleResource roleResource = new RoleResourceAssembler().toResource(role);
//         headers.setLocation(entityLinks.linkForSingleResource(Role.class, role.getId()).toUri());
//         ResponseEntity<RoleResource> responseEntity = new ResponseEntity<RoleResource>(roleResource, headers,
//                 HttpStatus.CREATED);
//         return responseEntity;
//     }
// 
//     @RequiresPermissions("role:update")
//     @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
//     public RoleResource update(@RequestBody Role role) {
//         roleService.update(role);
//         return new RoleResourceAssembler().toResource(role);
//     }
// 
//     @RequiresPermissions("role:delete")
//     @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
//     @ResponseStatus(HttpStatus.NO_CONTENT)
//     public void delete(@PathVariable("id") Long id) {
//         roleService.delete(id);
//     }
// 
//     @RequiresPermissions("role:delete")
//     @RequestMapping(value = "", method = RequestMethod.DELETE)
//     @ResponseStatus(HttpStatus.NO_CONTENT)
//     public void deleteBatch(@RequestBody List<Long> ids) {
//         roleService.deleteBatch(ids);
//     }
// }
// 
// Path: src/main/java/io/github/howiefh/jeews/modules/sys/entity/Role.java
// @Relation(value = "role", collectionRelation = "roles")
// public class Role extends DataEntity {
//     private static final long serialVersionUID = 1744395330761664879L;
// 
//     /**
//      * 名称 - sys_role.name
//      */
//     private String name;
// 
//     /**
//      * 中文名称 - sys_role.cnname
//      */
//     private String cnname;
// 
//     /**
//      * 是否可用 - sys_role.available
//      */
//     private Boolean available;
// 
//     /**
//      * 角色可以访问的菜单
//      */
//     private Set<Menu> menus;
// 
//     public Role() {
//     }
// 
//     /**
//      * 构造器，从json整型数据可以构造该对象
//      */
//     public Role(Long id) {
//         this.id = id;
//     }
// 
//     /**
//      * Gets the value of the database column sys_role.name
//      *
//      * @return 名称
//      */
//     public String getName() {
//         return name;
//     }
// 
//     /**
//      * Sets the value of the database column sys_role.name
//      *
//      * @param name
//      *            名称
//      */
//     public void setName(String name) {
//         this.name = name == null ? null : name.trim();
//     }
// 
//     /**
//      * Gets the value of the database column sys_role.cnname
//      *
//      * @return 中文名称
//      */
//     public String getCnname() {
//         return cnname;
//     }
// 
//     /**
//      * Sets the value of the database column sys_role.cnname
//      *
//      * @param cnname
//      *            中文名称
//      */
//     public void setCnname(String cnname) {
//         this.cnname = cnname == null ? null : cnname.trim();
//     }
// 
//     /**
//      * Gets the value of the database column sys_role.available
//      *
//      * @return 是否可用
//      */
//     public Boolean getAvailable() {
//         return available;
//     }
// 
//     /**
//      * Sets the value of the database column sys_role.available
//      *
//      * @param available
//      *            是否可用
//      */
//     public void setAvailable(Boolean available) {
//         this.available = available;
//     }
// 
//     public Set<Menu> getMenus() {
//         return menus;
//     }
// 
//     public void setMenus(Set<Menu> menus) {
//         this.menus = menus;
//     }
// }


// Path: src/main/java/io/github/howiefh/jeews/modules/sys/resource/RoleResourceAssembler.java
import io.github.howiefh.jeews.modules.sys.controller.RoleController;
import io.github.howiefh.jeews.modules.sys.entity.Role;
import org.springframework.hateoas.mvc.ResourceAssemblerSupport;

package io.github.howiefh.jeews.modules.sys.resource;



public class RoleResourceAssembler extends ResourceAssemblerSupport<Role, RoleResource> {

    public RoleResourceAssembler() {
        super(RoleController.class, RoleResource.class);
    }

    @Override
    public RoleResource toResource(Role entity) {