Apache Commons CLI লাইব্রেরি কমান্ড লাইন আর্গুমেন্ট পার্সিংয়ের জন্য দুটি প্রধান পার্সার সরবরাহ করে: DefaultParser এবং GnuParser। দুটি পার্সারের মধ্যে পার্থক্য রয়েছে এবং তারা বিভিন্ন ধরনের কমান্ড লাইন আর্গুমেন্ট স্টাইল পরিচালনা করে। DefaultParser সাধারণ কমান্ড লাইন আর্গুমেন্ট এবং অপশন পার্স করতে ব্যবহৃত হয়, যেখানে GnuParser GNU স্টাইলের অপশন পার্স করার জন্য ব্যবহৃত হয়।
এখানে DefaultParser এবং GnuParser এর ব্যবহার এবং তাদের মধ্যে পার্থক্য ব্যাখ্যা করা হয়েছে।
1. DefaultParser
DefaultParser কমান্ড লাইন আর্গুমেন্ট পার্স করার জন্য একটি সাধারণ পার্সার। এটি সাধারণত কমান্ড লাইন আর্গুমেন্টগুলি যেগুলি - বা -- দিয়ে শুরু হয় সেগুলিকে পার্স করে। এটি কমপ্যাক্ট এবং সরল আর্গুমেন্ট স্টাইলগুলির জন্য ব্যবহৃত হয়, যেমন:
-n John--name John
DefaultParser একটি সহজ, ডিফল্ট স্টাইলের পার্সিংয়ের জন্য ব্যবহৃত হয়।
উদাহরণ: DefaultParser ব্যবহার
import org.apache.commons.cli.*;
public class CommandLineExample {
public static void main(String[] args) {
// Option অবজেক্ট তৈরি করা
Options options = new Options();
// --name এবং --age অপশন তৈরি করা
options.addOption("n", "name", true, "Your name");
options.addOption("a", "age", true, "Your age");
// DefaultParser দিয়ে আর্গুমেন্ট পার্স করা
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// কমান্ড লাইন আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// নাম অপশন চেক করা
if (cmd.hasOption("n")) {
String name = cmd.getOptionValue("n");
System.out.println("Name: " + name);
}
// বয়স অপশন চেক করা
if (cmd.hasOption("a")) {
String age = cmd.getOptionValue("a");
System.out.println("Age: " + age);
}
} catch (ParseException e) {
System.out.println("Parsing failed. Reason: " + e.getMessage());
}
}
}
আউটপুট:
যদি আপনি এই কোডটি java CommandLineExample -n John -a 25 চালান, তাহলে আউটপুট হবে:
Name: John
Age: 25
এখানে, DefaultParser স্টাইলের মধ্যে -n এবং --name অপশন কাজ করছে এবং এটি সঠিকভাবে আর্গুমেন্টগুলি পার্স করছে।
2. GnuParser
GnuParser একটি বিশেষ ধরনের পার্সার যা GNU স্টাইলের কমান্ড লাইন আর্গুমেন্ট পার্স করতে ব্যবহৃত হয়। এই স্টাইলের মধ্যে অপশনগুলি সাধারণত - অথবা -- দিয়ে শুরু হয়, এবং আর্গুমেন্টগুলি মুল অপশনের পরে স্পেস দিয়ে দেওয়া হয়। যেমন:
-n John--name=John
এছাড়াও, GNU স্টাইলের মধ্যে একটি অপশন আর্গুমেন্ট বাদ দিয়েও কাজ করতে পারে, যেমন -n John এর পরিবর্তে -n এবং পরে আর্গুমেন্ট দিতে হবে না।
উদাহরণ: GnuParser ব্যবহার
import org.apache.commons.cli.*;
public class CommandLineExample {
public static void main(String[] args) {
// Option অবজেক্ট তৈরি করা
Options options = new Options();
// --name এবং --age অপশন তৈরি করা
options.addOption("n", "name", true, "Your name");
options.addOption("a", "age", true, "Your age");
// GnuParser দিয়ে আর্গুমেন্ট পার্স করা
CommandLineParser parser = new GnuParser();
CommandLine cmd = null;
try {
// কমান্ড লাইন আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// নাম অপশন চেক করা
if (cmd.hasOption("n")) {
String name = cmd.getOptionValue("n");
System.out.println("Name: " + name);
}
// বয়স অপশন চেক করা
if (cmd.hasOption("a")) {
String age = cmd.getOptionValue("a");
System.out.println("Age: " + age);
}
} catch (ParseException e) {
System.out.println("Parsing failed. Reason: " + e.getMessage());
}
}
}
আউটপুট:
যদি আপনি এই কোডটি java CommandLineExample --name=John --age=25 চালান, তাহলে আউটপুট হবে:
Name: John
Age: 25
এখানে GnuParser ব্যবহার করে অপশন এবং আর্গুমেন্টগুলি --name=John এবং --age=25 ফরম্যাটে পার্স করা হয়েছে।
3. DefaultParser এবং GnuParser এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | DefaultParser | GnuParser |
|---|---|---|
| অপশন স্টাইল | -n John বা --name John | -n=John বা --name=John |
| আর্গুমেন্টের অবস্থান | অপশন এবং আর্গুমেন্ট একে অপরের পরে থাকতে হবে | অপশন এবং আর্গুমেন্ট একত্রে একই স্থানে থাকতে পারে |
| যথাযথ আর্গুমেন্ট প্রসেসিং | কমান্ড লাইন স্টাইলের জন্য সহজ পার্সিং | GNU স্টাইলের আর্গুমেন্ট, যেমন --option=value |
| কাস্টমাইজেশন | সাধারন ব্যবহারের জন্য উপযুক্ত | GNU ফর্ম্যাটের জন্য উপযুক্ত |
সারাংশ
DefaultParser এবং GnuParser হল দুটি প্রধান পার্সার যা Apache Commons CLI লাইব্রেরি দ্বারা প্রদান করা হয়। DefaultParser সাধারণ কমান্ড লাইন আর্গুমেন্ট পার্সিংয়ের জন্য ব্যবহৃত হয়, যেখানে আর্গুমেন্ট এবং অপশন একে অপরের পরে থাকে। অন্যদিকে, GnuParser GNU স্টাইলের অপশন এবং আর্গুমেন্ট হ্যান্ডল করতে ব্যবহৃত হয়, যা অপশন এবং আর্গুমেন্টের মধ্যে সমান চিহ্ন (=) ব্যবহার করে। আপনার প্রয়োজনে উপযুক্ত পার্সার নির্বাচন করে সহজে কমান্ড লাইন আর্গুমেন্ট প্রসেস করা সম্ভব।
Read more