Örnek ile converter java
Published: 2024-05-28 21:04:09


@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class CustomerConverter {

    public static Customer toCustomer(CustomerSaveRequest request) {
        String hashedPassword = HashUtil.generate(request.getPassword());

        Customer customer = new Customer(request.getName(), request.getSurname(), request.getEmail(), hashedPassword);
        customer.setAccountType(AccountType.STANDARD);
        customer.setIsActive(Boolean.TRUE);
        return customer;
    }
}
burda ne yapılmış ?



Bu kod parçasında, bir `CustomerConverter` adında bir sınıf oluşturulmuş ve bu sınıf içinde bir statik metot tanımlanmış. Bu metot, bir `CustomerSaveRequest` nesnesini alarak bir `Customer` nesnesine dönüştürmek için kullanılıyor. İşlemlerin ayrıntılarına bakalım:

### Anotasyon ve Sınıf Tanımı

```java
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class CustomerConverter {
```

- **@NoArgsConstructor(access = AccessLevel.PRIVATE)**: Bu anotasyon, Lombok kütüphanesi tarafından sağlanır ve sınıfın özel bir parametresiz (no-args) kurucu oluşturur. Böylece bu sınıftan nesne oluşturulması engellenir. Bu, tüm metotların statik olacağını ve bu sınıfın yalnızca bir yardımcı (utility) sınıf olarak kullanılacağını gösterir.

### Statik Metot

```java
public static Customer toCustomer(CustomerSaveRequest request) {
```

- **public static Customer toCustomer(CustomerSaveRequest request)**: Bu metot, `CustomerSaveRequest` nesnesini alarak bir `Customer` nesnesine dönüştürür. Metot statik olduğu için `CustomerConverter` sınıfının bir örneğini oluşturmadan doğrudan çağrılabilir.

### Parolanın Hashlenmesi

```java
String hashedPassword = HashUtil.generate(request.getPassword());
```

- **String hashedPassword = HashUtil.generate(request.getPassword())**: `request` nesnesinden alınan parola (`password`), `HashUtil` sınıfındaki `generate` metodu kullanılarak hashlenir. Bu, parolanın güvenli bir şekilde saklanmasını sağlar.

### Customer Nesnesinin Oluşturulması

```java
Customer customer = new Customer(request.getName(), request.getSurname(), request.getEmail(), hashedPassword);
```

- **Customer customer = new Customer(...)**: `CustomerSaveRequest` nesnesinden alınan isim (`name`), soyisim (`surname`), e-posta (`email`) ve hashlenmiş parola (`hashedPassword`) kullanılarak yeni bir `Customer` nesnesi oluşturulur.

### Ek Ayarların Yapılması

```java
customer.setAccountType(AccountType.STANDARD);
customer.setIsActive(Boolean.TRUE);
```

- **customer.setAccountType(AccountType.STANDARD)**: Müşterinin hesap türü `STANDARD` olarak ayarlanır.
- **customer.setIsActive(Boolean.TRUE)**: Müşteri aktif olarak işaretlenir.

### Sonuç

```java
return customer;
```

- **return customer**: Oluşturulan ve ayarları yapılan `Customer` nesnesi geri döndürülür.

### Özet

Bu kod parçası, bir `CustomerSaveRequest` nesnesinden bir `Customer` nesnesi oluşturan bir yardımcı sınıf (utility class) tanımlar. `CustomerConverter` sınıfı, özel bir kurucuya sahip olduğu için doğrudan örneklenemez. Statik `toCustomer` metodu, `CustomerSaveRequest`'ten gelen verileri kullanarak yeni bir `Customer` nesnesi oluşturur, parolayı hashler, hesap türünü ve aktif durumunu ayarlar ve son olarak bu nesneyi geri döndürür.