Nested Bean এর প্রপার্টি Access এবং Manipulation

Nested Beans Handling (নেস্টেড বিন হ্যান্ডলিং) - জাভা বীনইউটিলস (Java BeanUtils) - Computer Programming

410

Nested Beans হল এমন Java Beans, যেখানে একটি Bean অন্য Bean ধারণ করে। এই ধরনের Beans-এ, প্রধান Bean (parent Bean) এর প্রপার্টি অন্য একটি Bean (child Bean) ধারণ করতে পারে। এটি ডেটার মডুলার কাঠামো তৈরি করতে সাহায্য করে, যেমন Person Bean-এ একটি Address Bean।

Nested Beans এর প্রপার্টি অ্যাক্সেস এবং ম্যানিপুলেশন করার জন্য Apache Commons BeanUtils বা PropertyUtils এর মতো লাইব্রেরি ব্যবহার করা হয়, যেগুলো Nested Properties সাপোর্ট করে।

1. Nested Bean এর প্রপার্টি অ্যাক্সেস এবং ম্যানিপুলেশন

উদাহরণ: Nested Bean ব্যবহার করে প্রপার্টি অ্যাক্সেস এবং ম্যানিপুলেশন

import org.apache.commons.beanutils.BeanUtils;

public class NestedBeanExample {
    public static void main(String[] args) {
        try {
            // Create Address object (Nested Bean)
            Address address = new Address("Street 123", "City A");

            // Create Person object with nested Address object
            Person person = new Person("John", 30, address);

            // Access nested properties using BeanUtils
            System.out.println("Before Manipulation:");
            System.out.println("Name: " + BeanUtils.getProperty(person, "name")); // Output: John
            System.out.println("Street: " + BeanUtils.getProperty(person, "address.street")); // Output: Street 123
            System.out.println("City: " + BeanUtils.getProperty(person, "address.city")); // Output: City A

            // Manipulate nested properties using BeanUtils
            BeanUtils.setProperty(person, "address.street", "Street 456");
            BeanUtils.setProperty(person, "address.city", "City B");

            // Output manipulated nested properties
            System.out.println("\nAfter Manipulation:");
            System.out.println("Street: " + BeanUtils.getProperty(person, "address.street")); // Output: Street 456
            System.out.println("City: " + BeanUtils.getProperty(person, "address.city")); // Output: City B
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;
    private Address address;

    public Person() {}

    public Person(String name, int age, Address address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    // Getter and setter methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

class Address {
    private String street;
    private String city;

    public Address(String street, String city) {
        this.street = street;
        this.city = city;
    }

    // Getter and setter methods
    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}

ব্যাখ্যা:

  1. Nested Bean: এখানে Person Bean এর মধ্যে Address Bean রয়েছে। address.street এবং address.city একটি নেস্টেড প্রপার্টি।
  2. BeanUtils.getProperty(): BeanUtils এর getProperty() মেথড ব্যবহার করে, আমরা Person Bean এবং Address Bean এর প্রপার্টি অ্যাক্সেস করেছি।
  3. BeanUtils.setProperty(): BeanUtils এর setProperty() মেথড ব্যবহার করে nested address এর প্রপার্টি manipulate (বদলানো) করেছি।

আউটপুট:

Before Manipulation:
Name: John
Street: Street 123
City: City A

After Manipulation:
Street: Street 456
City: City B

এখানে, nested প্রপার্টি যেমন address.street এবং address.city অ্যাক্সেস এবং ম্যানিপুলেট করা হয়েছে।


2. PropertyUtils ব্যবহার করে Nested Bean এর প্রপার্টি অ্যাক্সেস এবং Manipulation

PropertyUtils ক্লাসটি Apache Commons BeanUtils লাইব্রেরির একটি অংশ, যা BeanUtils এর মতো প্রপার্টি অ্যাক্সেস এবং ম্যানিপুলেশন করতে ব্যবহৃত হয়, তবে এটি আরও বেশি ফিচার এবং সহজ পদ্ধতিতে nested properties এর সাথে কাজ করতে সক্ষম।

উদাহরণ: PropertyUtils ব্যবহার করে Nested Bean-এর প্রপার্টি অ্যাক্সেস এবং Manipulation

import org.apache.commons.beanutils.PropertyUtils;

public class PropertyUtilsNestedExample {
    public static void main(String[] args) {
        try {
            // Create Address object (Nested Bean)
            Address address = new Address("Street 123", "City A");

            // Create Person object with nested Address object
            Person person = new Person("John", 30, address);

            // Access nested properties using PropertyUtils
            System.out.println("Before Manipulation:");
            System.out.println("Name: " + PropertyUtils.getProperty(person, "name")); // Output: John
            System.out.println("Street: " + PropertyUtils.getProperty(person, "address.street")); // Output: Street 123
            System.out.println("City: " + PropertyUtils.getProperty(person, "address.city")); // Output: City A

            // Manipulate nested properties using PropertyUtils
            PropertyUtils.setProperty(person, "address.street", "Street 456");
            PropertyUtils.setProperty(person, "address.city", "City B");

            // Output manipulated nested properties
            System.out.println("\nAfter Manipulation:");
            System.out.println("Street: " + PropertyUtils.getProperty(person, "address.street")); // Output: Street 456
            System.out.println("City: " + PropertyUtils.getProperty(person, "address.city")); // Output: City B
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  1. PropertyUtils.getProperty(): PropertyUtils.getProperty() মেথড ব্যবহার করে nested address.street এবং address.city প্রপার্টি অ্যাক্সেস করা হয়েছে।
  2. PropertyUtils.setProperty(): PropertyUtils.setProperty() মেথড ব্যবহার করে nested প্রপার্টি ম্যানিপুলেট করা হয়েছে।

আউটপুট:

Before Manipulation:
Name: John
Street: Street 123
City: City A

After Manipulation:
Street: Street 456
City: City B

3. Nested Bean Access এবং Manipulation এর কিছু গুরুত্বপূর্ণ পদ্ধতি

  • BeanUtils.copyProperties(): এক Bean থেকে অন্য Bean-এ প্রপার্টি কপি করার জন্য।
  • PropertyUtils.getProperty(): Bean বা nested Bean-এর প্রপার্টি অ্যাক্সেস করতে।
  • PropertyUtils.setProperty(): Bean বা nested Bean-এর প্রপার্টি সেট করতে।

4. Nested Bean এর সাথে অন্যান্য ফ্রেমওয়ার্কের সমন্বয়

  • Spring Framework: Spring IoC (Inversion of Control) কন্টেইনারে nested beans কাজ করে খুবই সহজে। Spring Bean validation এবং dependency injection এর সাথে আপনি nested beans ব্যবহার করতে পারবেন।
  • Hibernate: Hibernate ORM এ nested properties কাস্টম entity Bean হিসাবে ব্যবহৃত হয়, যা ডাটাবেস টেবিলের সাথে মেপ করা হয়।

সারাংশ

  • Nested Beans হল Java Beans যেখানে একটি Bean অন্য Bean ধারণ করে। এটি Java Beans এর মধ্যে ডেটার গঠন এবং মডুলারিটি নিশ্চিত করে।
  • BeanUtils এবং PropertyUtils এর মাধ্যমে আপনি nested properties অ্যাক্সেস এবং ম্যানিপুলেট করতে পারেন।
  • BeanUtils.getProperty() এবং PropertyUtils.getProperty() এর মাধ্যমে nested Bean-এর প্রপার্টি অ্যাক্সেস করা যায় এবং setProperty() মেথডের মাধ্যমে nested properties পরিবর্তন বা ম্যানিপুলেট করা সম্ভব।
Content added || updated By
Promotion

Are you sure to start over?

Loading...