BeanUtilsBean এর ডিফল্ট কনফিগারেশন পরিবর্তন করা

BeanUtilsBean Customization (বিনইউটিলস বিন কাস্টমাইজেশন) - জাভা বীনইউটিলস (Java BeanUtils) - Computer Programming

302

Apache Commons BeanUtils লাইব্রেরিতে BeanUtilsBean একটি বিশেষ ক্লাস যা BeanUtils এর বিভিন্ন কার্যকলাপ পরিচালনা করে, যেমন ডেটা কপি করা, টাইপ কনভার্সন এবং প্রপার্টি ম্যানিপুলেশন। BeanUtilsBean ক্লাসটি ডিফল্ট কনফিগারেশন সেটিংস সরবরাহ করে, তবে কিছু বিশেষ পরিস্থিতিতে আপনি এই কনফিগারেশন পরিবর্তন করতে চাইলে তা সম্ভব।

কনফিগারেশন পরিবর্তন করার উদ্দেশ্য:

  1. অতিরিক্ত প্রপার্টি সেটিং: ডিফল্ট কনফিগারেশন যদি আপনার প্রপার্টি ম্যানিপুলেশনের জন্য উপযুক্ত না হয়, তবে আপনি BeanUtilsBean ব্যবহার করে কাস্টম সেটিংস অ্যাপ্লাই করতে পারেন।
  2. টাইপ কনভার্সন: টাইপ কনভার্সন কাস্টমাইজ করতে, যেমন String থেকে Integer কনভার্ট করা, বা অন্য কোন নির্দিষ্ট কনভার্সন পদ্ধতি ব্যবহার করা।
  3. Error Handling: ডিফল্ট error handling পরিবর্তন করতে এবং কাস্টম conversion errors বা property access errors হ্যান্ডল করতে BeanUtilsBean এর সাহায্য নিতে পারেন।

BeanUtilsBean ক্লাসের মাধ্যমে কনফিগারেশন পরিবর্তন করা

BeanUtilsBean ক্লাসের কিছু মূল কনফিগারেশন সেটিংস পরিবর্তন করার জন্য, আপনি BeanUtilsBean এর setInstance() মেথড ব্যবহার করে একটি কাস্টম ইনস্ট্যান্স তৈরি করতে পারেন।

উদাহরণ: BeanUtilsBean এর কনফিগারেশন পরিবর্তন করা

import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.converters.DateConverter;

public class BeanUtilsCustomConfigExample {
    public static void main(String[] args) {
        try {
            // Create a custom DateConverter to convert strings to Date
            DateConverter dateConverter = new DateConverter(null);
            dateConverter.setPatterns(new String[]{"yyyy-MM-dd", "MM/dd/yyyy"});

            // Create a custom BeanUtilsBean with the custom converter
            BeanUtilsBean beanUtilsBean = new BeanUtilsBean();
            beanUtilsBean.getConvertUtils().register(dateConverter, java.util.Date.class);

            // Use the custom BeanUtilsBean for property copying
            Person source = new Person("John", "2024-11-15");
            Person target = new Person();
            beanUtilsBean.copyProperties(target, source);

            // Output the result
            System.out.println("Name: " + target.getName());  // Output: John
            System.out.println("Birthdate: " + target.getBirthdate());  // Output: 2024-11-15

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private java.util.Date birthdate;

    public Person() {}

    public Person(String name, String birthdate) throws Exception {
        this.name = name;
        // Convert the string to a Date
        this.birthdate = new java.text.SimpleDateFormat("yyyy-MM-dd").parse(birthdate);
    }

    public String getName() {
        return name;
    }

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

    public java.util.Date getBirthdate() {
        return birthdate;
    }

    public void setBirthdate(java.util.Date birthdate) {
        this.birthdate = birthdate;
    }
}

ব্যাখ্যা:

  1. Custom Converter: এখানে আমরা একটি DateConverter তৈরি করেছি যা String থেকে Date কনভার্সন করতে ব্যবহৃত হয়। দুটি তারিখের ফরম্যাট যোগ করা হয়েছে (যেমন yyyy-MM-dd, MM/dd/yyyy)।
  2. BeanUtilsBean Instance: এরপর একটি BeanUtilsBean এর কাস্টম ইনস্ট্যান্স তৈরি করা হয়েছে, যেখানে আমাদের কাস্টম DateConverter রেজিস্টার করা হয়েছে। এরপর copyProperties() ব্যবহার করে ডেটা কপি করা হয়েছে।
  3. কাস্টম কনভার্সন: যখন BeanUtilsBean কাস্টম কনভার্সন ব্যবহার করে ডেটা কপি করা হয়েছে, তখন String থেকে Date কনভার্সন সঠিকভাবে সম্পন্ন হয়েছে।

BeanUtilsBean এর কিছু গুরুত্বপূর্ণ কনফিগারেশন অপশন:

  1. Type Conversion:
    • আপনি Type Converters কাস্টমাইজ করতে পারেন, যেমন DateConverter, BooleanConverter, IntegerConverter, ইত্যাদি। এগুলি setPatterns() অথবা setDefaultValue() মেথডের মাধ্যমে কনফিগার করা যায়।
  2. Error Handling:
    • আপনি BeanUtilsBean এর setStrictMethodInvocation(true) সেট করতে পারেন, যা strict mode চালু করে এবং প্যারামিটার মিসিং হলে IllegalAccessException ছুঁড়ে দেয়।
    • আপনি setPropertyUtilsBean() ব্যবহার করে PropertyUtilsBean এর কাস্টম কনফিগারেশন সেট করতে পারেন।
  3. MethodInvocation Customization:
    • ডিফল্টভাবে, BeanUtils প্রপার্টি অ্যাক্সেসের জন্য getter এবং setter মেথড ব্যবহার করে। তবে আপনি setMethodAccessor() এর মাধ্যমে কাস্টম মেথড অ্যাক্সেসর সেট করতে পারেন।
  4. Custom Property Names:
    • আপনি convertUtils এর মাধ্যমে কাস্টম property naming strategies ব্যবহার করতে পারেন। এর মাধ্যমে, প্রপার্টি নামের মধ্যে পরিবর্তন আনা সম্ভব হয়।

সারাংশ:

  • BeanUtilsBean হল Apache Commons BeanUtils লাইব্রেরির মূল অংশ যা প্রপার্টি কপি, টাইপ কনভার্সন, এবং অন্যান্য কার্যকলাপ পরিচালনা করে।
  • আপনি BeanUtilsBean এর কনফিগারেশন পরিবর্তন করে type converters, error handling, এবং method invocation কাস্টমাইজ করতে পারেন।
  • কাস্টম কনফিগারেশনগুলি আপনাকে আরও উন্নত কন্ট্রোল এবং ফ্লেক্সিবিলিটি প্রদান করে, বিশেষ করে যখন আপনার প্রোজেক্টে জটিল ডেটা ম্যানিপুলেশন প্রয়োজন।
Content added || updated By
Promotion

Are you sure to start over?

Loading...