// Path: server/budgeting/src/main/java/de/budgetfreak/budgeting/domain/Category.java
// @Entity(name = "BF_CATEGORY")
// public class Category {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.IDENTITY)
//     @Column(name = "ID")
//     private Long id;
// 
//     @Column(name = "NAME")
//     private String name;
// 
//     @Column(name = "DESCRIPTION")
//     private String description;
// 
//     @ManyToOne(fetch = FetchType.LAZY)
//     @JoinColumn(name = "MASTERCATEGORY_ID")
//     private MasterCategory masterCategory;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public Category setId(Long id) {
//         this.id = id;
//         return this;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public Category setName(String name) {
//         this.name = name;
//         return this;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public Category setDescription(String description) {
//         this.description = description;
//         return this;
//     }
// 
//     public MasterCategory getMasterCategory() {
//         return masterCategory;
//     }
// 
//     public Category setMasterCategory(MasterCategory masterCategory) {
//         this.masterCategory = masterCategory;
//         return this;
//     }
// }
// 
// Path: server/user-management/src/main/java/de/budgetfreak/usermanagement/domain/User.java
// @Entity(name = "BF_USER")
// public class User {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.IDENTITY)
//     @Column(name = "ID")
//     private Long id;
// 
//     @Column(name = "NAME")
//     private String name;
// 
//     @Column(name = "CURRENCY")
//     private String currency;
// 
//     public User() {
//     }
// 
//     public User(String name, String currency) {
//         this.name = name;
//         this.currency = currency;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public User setId(Long id) {
//         this.id = id;
//         return this;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public User setName(String name) {
//         this.name = name;
//         return this;
//     }
// 
//     public String getCurrency() {
//         return currency;
//     }
// 
//     public User setCurrency(String currency) {
//         this.currency = currency;
//         return this;
//     }
// }


import de.budgetfreak.budgeting.domain.Category;
import de.budgetfreak.budgeting.domain.Category_;
import de.budgetfreak.budgeting.domain.MasterCategory_;
import de.budgetfreak.usermanagement.domain.User;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
package de.budgetfreak.budgeting.specification;


/**
 * {@link Specification}s for {@link Category}-entities.
 */
@Component
public class CategorySpecifications {

// Path: server/budgeting/src/main/java/de/budgetfreak/budgeting/domain/Category.java
// @Entity(name = "BF_CATEGORY")
// public class Category {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.IDENTITY)
//     @Column(name = "ID")
//     private Long id;
// 
//     @Column(name = "NAME")
//     private String name;
// 
//     @Column(name = "DESCRIPTION")
//     private String description;
// 
//     @ManyToOne(fetch = FetchType.LAZY)
//     @JoinColumn(name = "MASTERCATEGORY_ID")
//     private MasterCategory masterCategory;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public Category setId(Long id) {
//         this.id = id;
//         return this;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public Category setName(String name) {
//         this.name = name;
//         return this;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public Category setDescription(String description) {
//         this.description = description;
//         return this;
//     }
// 
//     public MasterCategory getMasterCategory() {
//         return masterCategory;
//     }
// 
//     public Category setMasterCategory(MasterCategory masterCategory) {
//         this.masterCategory = masterCategory;
//         return this;
//     }
// }
// 
// Path: server/user-management/src/main/java/de/budgetfreak/usermanagement/domain/User.java
// @Entity(name = "BF_USER")
// public class User {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.IDENTITY)
//     @Column(name = "ID")
//     private Long id;
// 
//     @Column(name = "NAME")
//     private String name;
// 
//     @Column(name = "CURRENCY")
//     private String currency;
// 
//     public User() {
//     }
// 
//     public User(String name, String currency) {
//         this.name = name;
//         this.currency = currency;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public User setId(Long id) {
//         this.id = id;
//         return this;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public User setName(String name) {
//         this.name = name;
//         return this;
//     }
// 
//     public String getCurrency() {
//         return currency;
//     }
// 
//     public User setCurrency(String currency) {
//         this.currency = currency;
//         return this;
//     }
// }


// Path: server/budgeting/src/main/java/de/budgetfreak/budgeting/specification/CategorySpecifications.java
import de.budgetfreak.budgeting.domain.Category;
import de.budgetfreak.budgeting.domain.Category_;
import de.budgetfreak.budgeting.domain.MasterCategory_;
import de.budgetfreak.usermanagement.domain.User;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;

package de.budgetfreak.budgeting.specification;


/**
 * {@link Specification}s for {@link Category}-entities.
 */
@Component
public class CategorySpecifications {

    public Specification<Category> byUser(User user) {