আমি নিজের লেখা শুরু করার আগে জাভা ব্যবহার করে ডিটিও-তে ডিটিওতে রূপান্তর করার চেষ্টা করছি এবং স্বয়ংক্রিয় সরঞ্জামের সন্ধান করছি। আমি কেবল এটির জন্য কোনও বিনামূল্যে সরঞ্জাম উপলব্ধ কিনা তা জানতে চেয়েছিলাম।
আমি নিজের লেখা শুরু করার আগে জাভা ব্যবহার করে ডিটিও-তে ডিটিওতে রূপান্তর করার চেষ্টা করছি এবং স্বয়ংক্রিয় সরঞ্জামের সন্ধান করছি। আমি কেবল এটির জন্য কোনও বিনামূল্যে সরঞ্জাম উপলব্ধ কিনা তা জানতে চেয়েছিলাম।
উত্তর:
আপনি ডোজার চেষ্টা করতে পারেন ।
দোজার হ'ল জাভা বিন থেকে জাভা বিন ম্যাপার যা একটি বস্তুর থেকে অন্য বস্তুর কাছে পুনরাবৃত্তভাবে ডেটা অনুলিপি করে। সাধারণত, এই জাভা বিনগুলি বিভিন্ন জটিল ধরণের হবে।
ডোজার সাধারণ প্রপার্টি ম্যাপিং, জটিল ধরণের ম্যাপিং, দ্বি-দিকনির্দেশক ম্যাপিং, অন্তর্নিহিত-সুস্পষ্ট ম্যাপিং পাশাপাশি পুনরাবৃত্ত ম্যাপিং সমর্থন করে। এর মধ্যে ম্যাপিং সংগ্রহের বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে যা উপাদান স্তরের ম্যাপিংয়েরও প্রয়োজন।
আশেপাশে কয়েকটি গ্রন্থাগার রয়েছে:
Commons-BeanUtils : ConversUtils -> স্ট্রিং স্কেলারের মানকে নির্দিষ্ট শ্রেণীর অবজেক্টে রূপান্তর করার জন্য ইউটিলিটি পদ্ধতি, স্ট্রিং অ্যারেগুলি নির্দিষ্ট শ্রেণীর অ্যারেতে রূপান্তর করা।
কমন্স-ল্যাং : অ্যারে ইউটিলেস -> অ্যারে, আদিম অ্যারে (যেমন ইনট []] এবং আদিম মোড়কের অ্যারে (যেমন পূর্ণসংখ্যার []] তে অপারেশন।
স্প্রিং ফ্রেমওয়ার্ক : স্প্রিংয়ের প্রোপার্টিএডিটরগুলির জন্য একটি দুর্দান্ত সমর্থন রয়েছে, এটি স্ট্রিংগুলিতে / থেকে অবজেক্টগুলিকে রূপান্তর করতেও ব্যবহার করা যেতে পারে।
ডোজার : ডোজার একটি শক্তিশালী, তবুও জাভা বিন ম্যাপের কাছে একটি জাভা বিন, যা এক বস্তুর থেকে অন্য বস্তুর কাছে পুনরাবৃত্তভাবে তথ্য অনুলিপি করে। সাধারণত, এই জাভা বিনগুলি বিভিন্ন জটিল ধরণের হবে।
ModelMapper : ModelMapper একটি বুদ্ধিমান অবজেক্ট ম্যাপিং কাঠামো যা স্বয়ংক্রিয়ভাবে একে অপরের কাছে মানচিত্র তৈরি করে। এটি নির্দিষ্ট ব্যবহারের ক্ষেত্রে পরিচালনা করার জন্য একটি সাধারণ রিফ্যাক্টরিং নিরাপদ এপিআই সরবরাহ করার সময় মানচিত্র অবজেক্টগুলিতে কনভেনশন ভিত্তিক পদ্ধতির ব্যবহার করে।
ম্যাপস্ট্রাক্ট : ম্যাপস্ট্রাক্ট শিম ম্যাপিংয়ের জন্য একটি সংকলন-সময় কোড জেনারেটর, যার ফলে দ্রুত হয় (প্রতিবিম্ব বা অনুরূপ ব্যবহার হয় না), নির্ভরতা কম এবং রানটাইমের সময় টাইপ-নিরাপদ ম্যাপিং কোড।
অরিকা : ওড়িকা ন্যূনতম ওভারহেড সহ দ্রুত ম্যাপার তৈরি করতে বাইট কোড জেনারেশন ব্যবহার করে।
সেলমা : ম্যাপিংয়ের জন্য সংকলন-সময় কোড-জেনারেটর
জেএম্প্পার : টিকা, এক্সএমএল বা এপিআই ব্যবহার করে শিমের ম্যাপার প্রজন্ম (2 বছর আগে শেষবারের মতো মৃত মনে হয়েছে)
স্মুকস : স্মুকস জাভাবিয়ান কার্টরিজ আপনাকে আপনার বার্তাগুলির ডেটা থেকে জাভা অবজেক্ট তৈরি করতে এবং পপুলেট করতে দেয় (যেমন ডেটা বাঁধুন) ( মন্তব্যগুলিতে সুপারফিলিন দ্বারা প্রস্তাবিত )। (সক্রিয় বিকাশের অধীনে আর নেই)
কমন্স-কনভার্ট : কমন্স-কনভার্টের উদ্দেশ্য একটি একক লাইব্রেরি সরবরাহ করা যা এক প্রকারের বস্তুকে অন্য প্রকারে রূপান্তর করার কাজে নিবেদিত হয়। প্রথম পর্যায়ে অবজেক্ট টু স্ট্রিং এবং স্ট্রিং টু অবজেক্ট রূপান্তরগুলিতে ফোকাস করা হবে। (মৃত মনে হচ্ছে, শেষ আপডেট ২০১০)
ট্রান্সমোর্ফ : ট্রান্সমোর্ফ হ'ল একটি নিখরচায় জাভা গ্রন্থাগার যা এক প্রকারের জাভা অবজেক্টকে অন্য ধরণের বস্তুতে রূপান্তর করতে ব্যবহৃত হয় (অন্য স্বাক্ষরের সাথে, সম্ভবত প্যারামিটারাইজড)। (মৃত মনে হচ্ছে, শেষ আপডেট 2013)
ইজেডমরফ : ইজডরফটি কোনও বস্তুকে অন্য অবজেক্টে রূপান্তর করার জন্য সহজ জাভা গ্রন্থাগার। এটি ডায়ানাবিয়ান্সের সাথে বহুমাত্রিক অ্যারে এবং ট্রান্সফর্মেশনগুলির জন্য আদিম ও অবজেক্টের রূপান্তরকে সমর্থন করে (মৃত মনে হচ্ছে, সর্বশেষ আপডেট হওয়া ২০০৮)
মরফ : মরফ একটি জাভা ফ্রেমওয়ার্ক যা কোনও অ্যাপ্লিকেশনটির অভ্যন্তরীণ আন্তঃআযোগিতা সহজ করে। তথ্য যেমন একটি অ্যাপ্লিকেশন মাধ্যমে প্রবাহিত হয়, এটি একাধিক রূপান্তর হয়। এই রূপান্তরগুলি বাস্তবায়নের জন্য মরফ একটি মানক উপায় সরবরাহ করে। (মৃত মনে হচ্ছে, শেষ আপডেট ২০০৮)
লরেন্টজ : লরেন্টজ একটি জেনেরিক অবজেক্ট-টু-অবজেক্ট রূপান্তর কাঠামো। এটি এক ধরণের জাভা অবজেক্টকে অন্য ধরণের একটি অবজেক্টে রূপান্তর করতে একটি সহজ এপিআই সরবরাহ করে। (মৃত মনে হচ্ছে)
OTOM : OTOM এর সাহায্যে আপনি যে কোনও অবজেক্ট থেকে অন্য কোনও অবজেক্টে কোনও ডেটা অনুলিপি করতে পারবেন। সম্ভাবনার শেষ নেই. "শরত্কালে" আপনাকে স্বাগতম। (মৃত মনে হচ্ছে)
আর একটি হ'ল ওড়িকা - https://github.com/orika-mapper/orika
অরিকা হ'ল একটি জাভা বিন ম্যাপিং ফ্রেমওয়ার্ক যা পুনরুক্তরূপে (অন্য ক্ষমতাগুলির মধ্যে) ডেটা এক জিনিস থেকে অন্য বস্তুর অনুলিপি করে। বহু-স্তরযুক্ত অ্যাপ্লিকেশনগুলি বিকাশ করার সময় এটি খুব কার্যকর হতে পারে।
প্রয়োজনে কনফিগারেশন এবং এক্সটেনশনের মাধ্যমে কাস্টমাইজেশন সরবরাহ করার সময় অরিকা যতটা সম্ভব স্বয়ংক্রিয়ভাবে মনোনিবেশ করতে জোর দেয়।
ওরিকা বিকাশকারীকে এতে সক্ষম করে:
- জটিল এবং গভীরভাবে কাঠামোগত সামগ্রী মানচিত্র
- নেস্টেড বৈশিষ্ট্যগুলি শীর্ষ স্তরের বৈশিষ্ট্যে ম্যাপিং করে "ফ্ল্যাটেন" বা "প্রসারিত করুন" অবজেক্টগুলি এবং তদ্বিপরীত
- ফ্লাইট অন ম্যাপার তৈরি করুন এবং ম্যাপিং কিছু বা সমস্ত নিয়ন্ত্রণ করতে কাস্টমাইজেশন প্রয়োগ করুন
- বস্তু গ্রাফের যে কোনও জায়গায় অবজেক্টের নির্দিষ্ট সেট ম্যাপিংয়ের উপর সম্পূর্ণ নিয়ন্ত্রণের জন্য রূপান্তরকারী তৈরি করুন - টাইপ করে, এমনকি নির্দিষ্ট সম্পত্তি নাম দিয়েও
- প্রক্সি বা বর্ধিত বস্তুগুলি হ্যান্ডেল করুন (হাইবারনেট বা বিভিন্ন মক ফ্রেমওয়ার্কের মতো)
- একটি কনফিগারেশন সহ দ্বি-দিকীয় ম্যাপিং প্রয়োগ করুন
- একটি লক্ষ্য বিমূর্ত শ্রেণি বা ইন্টারফেসের জন্য উপযুক্ত কংক্রিট শ্রেণীর উদাহরণগুলির মানচিত্র
- বিপরীত ম্যাপিংগুলি হ্যান্ডেল করুন
- জাভাবিয়ান চশমা ছাড়িয়ে জটিল কনভেনশনগুলি পরিচালনা করুন।
ন্যূনতম ওভারহেড সহ দ্রুত ম্যাপার তৈরি করতে অরিকা বাইট কোড জেনারেশন ব্যবহার করে।
মডেলম্যাপার চেক আউট মূল্যবান আরেকটি গ্রন্থাগার। মডেলম্যাপারের ডিজাইন এটি অন্যান্য লাইব্রেরির চেয়ে আলাদা:
আরও তথ্যের জন্য মডেলম্যাপার সাইটটি দেখুন:
অ্যাপাচি কমন্স বিয়ান্টিল ব্যবহার করুন:
static void copyProperties(Object dest, Object orig)
-জগতের নাম সমান হ'ল সমস্ত ক্ষেত্রে মূল বিন থেকে গন্তব্য বিন পর্যন্ত কপির সম্পত্তি মান।
আরও একটি জাভা ম্যাপিং ইঞ্জিন / ফ্রেমওয়ার্ক রয়েছে নমন: http://nomin.sourceforge.net ।
আমি আপনাকে JMapper ফ্রেমওয়ার্ক চেষ্টা করার পরামর্শ দিচ্ছি ।
এটি জাভা বিন ম্যাপের জাভা বিন, আপনাকে টিকা এবং / অথবা এক্সএমএল দিয়ে গতিশীলভাবে ডেটা প্যাসেজ করতে দেয়।
জেএম্প্পার দিয়ে আপনি করতে পারেন:
আমি মৌ কে বিকল্প হিসাবে যুক্ত করতে পেরে খুশি, যদিও স্পষ্টতই আমি এর প্রতি পক্ষপাতিত্ব করেছি: http://geoffreywiseman.github.com/Moo/
এটি আরও জটিল জটিলতার জন্য যুক্তিসঙ্গতভাবে সহজ মামলার ক্ষেত্রে সহজ ক্ষেত্রে ব্যবহার করা খুব সহজ, যদিও এমন আরও কিছু ক্ষেত্র রয়েছে যেখানে আমি আরও জটিলতার জন্য এটি বাড়ানোর কল্পনা করতে পারি।
আপনি ডোজারের উপর ভিত্তি করে ম্যাপিং ফ্রেমওয়ার্কটি চেষ্টা করতে পারেন তবে এক্সেল ম্যাপিং ঘোষণার মাধ্যমেও। তারা কিছু সরঞ্জাম এবং অতিরিক্ত দুর্দান্ত বৈশিষ্ট্য পেয়েছে। এ চেক করুন http://openl-tablets.sf.net/mapper
new ObjectMapper().convertValue(...)
। জ্যাকসনের এনটেশন এবং টিকা-মিশ্রণগুলির জন্যও সমর্থন রয়েছে তাই আমি এটি একটি খুব ভাল বিকল্প বলে মনে করি।