Apache Commons CLI লাইব্রেরি কমান্ড লাইন অ্যাপ্লিকেশনগুলিতে আর্গুমেন্ট পার্সিং সহজ করে তোলে। এটি কমান্ড লাইন থেকে আর্গুমেন্ট গ্রহণ এবং তাদের প্রক্রিয়াকরণে সহায়তা করে, যাতে ডেভেলপাররা কাস্টমাইজড ইনপুট গ্রহণ করতে পারেন। এ ছাড়া, exclusive এবং inclusive options ধারণাগুলি অত্যন্ত গুরুত্বপূর্ণ যখন একাধিক অপশন ব্যবহার করা হয়।
Exclusive এবং Inclusive Options এর ধারণা
- Exclusive Options:
- Exclusive Options হল এমন অপশন যা একসঙ্গে ব্যবহার করা যাবে না। একাধিক অপশনগুলির মধ্যে একটি নির্বাচন করতে হবে।
- উদাহরণস্বরূপ, আপনি যদি দুটি অপশন (যেমন
-aএবং-b) ব্যবহার করেন, তবে একে অপরের সাথে একসাথে ব্যবহার করা যাবে না; ব্যবহারকারীকে একটিই নির্বাচন করতে হবে। একে mutually exclusive অপশন বলা হয়।
- Inclusive Options:
- Inclusive Options হল এমন অপশন যা একসঙ্গে একাধিক বার ব্যবহার করা যেতে পারে। ব্যবহারকারী একাধিক অপশন একত্রে ব্যবহার করতে পারবেন এবং সেগুলি কোন সমস্যা ছাড়াই একসাথে কাজ করবে।
- উদাহরণস্বরূপ, আপনি যদি একাধিক ফ্ল্যাগ বা আর্গুমেন্ট (
-a,-b,-c) ব্যবহার করতে চান, তবে সেগুলি একসাথে কাজ করবে। এগুলিকে inclusive অপশন বলা হয়।
Apache Commons CLI তে Exclusive এবং Inclusive Options বাস্তবায়ন
এখন, আমরা দেখব কিভাবে Apache Commons CLI লাইব্রেরি ব্যবহার করে exclusive এবং inclusive অপশন বাস্তবায়ন করা যায়।
Exclusive Options উদাহরণ
ধরি, আমাদের একটি অ্যাপ্লিকেশন আছে যা দুটি অপশন গ্রহণ করে:
-aঅপশন এবং-bঅপশন
এই দুটি অপশন একসাথে ব্যবহার করা যাবে না, অর্থাৎ ব্যবহারকারীকে একটি অপশন নির্বাচন করতে হবে।
উদাহরণ: Exclusive Options
import org.apache.commons.cli.*;
public class ExclusiveOptionsExample {
public static void main(String[] args) {
// অপশন তৈরি
Options options = new Options();
options.addOption("a", "optionA", false, "Use option A");
options.addOption("b", "optionB", false, "Use option B");
// পার্সার তৈরি
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
try {
// কমান্ড লাইন আর্গুমেন্ট পার্স করা
CommandLine line = parser.parse(options, args);
// এক্সক্লুসিভ অপশন চেক করা
if (line.hasOption("a") && line.hasOption("b")) {
System.out.println("Error: You cannot use both -a and -b together.");
} else if (line.hasOption("a")) {
System.out.println("Option A selected");
} else if (line.hasOption("b")) {
System.out.println("Option B selected");
} else {
System.out.println("No options selected");
}
} catch (ParseException exp) {
System.out.println("Error parsing the command line: " + exp.getMessage());
formatter.printHelp("ExclusiveOptionsExample", options);
}
}
}
আউটপুট:
যদি
-aএবং-bএকসাথে ব্যবহার করা হয়:java ExclusiveOptionsExample -a -b Error: You cannot use both -a and -b together.যদি
-aব্যবহার করা হয়:java ExclusiveOptionsExample -a Option A selectedযদি
-bব্যবহার করা হয়:java ExclusiveOptionsExample -b Option B selected
এখানে, -a এবং -b একসাথে ব্যবহার করা যাবে না, এবং ব্যবহারকারীকে একটি অপশন নির্বাচন করতে হবে।
Inclusive Options উদাহরণ
ধরি, আমাদের একটি অ্যাপ্লিকেশন আছে যা multiple অপশন গ্রহণ করে:
-fঅপশন, যা ফাইল পাথ গ্রহণ করবে,-vঅপশন, যা ভার্সন তথ্য প্রদর্শন করবে,-dঅপশন, যা ডিবাগ মোড চালু করবে।
এই তিনটি অপশন একসাথে ব্যবহার করা যেতে পারে, অর্থাৎ, inclusive options হিসাবে তারা একসাথে ব্যবহৃত হতে পারে।
উদাহরণ: Inclusive Options
import org.apache.commons.cli.*;
public class InclusiveOptionsExample {
public static void main(String[] args) {
// অপশন তৈরি
Options options = new Options();
options.addOption("f", "file", true, "Path to the input file");
options.addOption("v", "version", false, "Show version");
options.addOption("d", "debug", false, "Enable debug mode");
// পার্সার তৈরি
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
try {
// কমান্ড লাইন আর্গুমেন্ট পার্স করা
CommandLine line = parser.parse(options, args);
// ইনক্লুসিভ অপশন চেক করা
if (line.hasOption("f")) {
System.out.println("File path: " + line.getOptionValue("f"));
}
if (line.hasOption("v")) {
System.out.println("Version 1.0.0");
}
if (line.hasOption("d")) {
System.out.println("Debug mode enabled");
}
} catch (ParseException exp) {
System.out.println("Error parsing the command line: " + exp.getMessage());
formatter.printHelp("InclusiveOptionsExample", options);
}
}
}
আউটপুট:
যদি
-f,-vএবং-dএকসাথে ব্যবহার করা হয়:java InclusiveOptionsExample -f /path/to/file -v -d File path: /path/to/file Version 1.0.0 Debug mode enabledযদি শুধুমাত্র
-fব্যবহার করা হয়:java InclusiveOptionsExample -f /path/to/file File path: /path/to/file
এখানে, multiple options একসাথে ব্যবহার করা যেতে পারে এবং এটি কোনও সমস্যা ছাড়াই কাজ করবে।
Exclusive এবং Inclusive Options এর মধ্যে পার্থক্য
| Feature | Exclusive Options | Inclusive Options |
|---|---|---|
| সংজ্ঞা | একাধিক অপশন একসাথে ব্যবহার করা যাবে না। | একাধিক অপশন একসাথে ব্যবহার করা যেতে পারে। |
| ব্যবহার | একসাথে ব্যবহার করতে পারবেন না, একটি অপশনই নির্বাচন করতে হবে। | একাধিক অপশন একসাথে ব্যবহার করা যাবে। |
| উদাহরণ | -a এবং -b একসাথে ব্যবহার করা যাবে না। | -f, -v, -d একসাথে ব্যবহার করা যেতে পারে। |
| পদ্ধতি | এক্সক্লুসিভ অপশন চেক করতে hasOption() ব্যবহার করা হয়। | একাধিক অপশন একসাথে ব্যবহার করার জন্য getOptionValues() ব্যবহার করা হয়। |
সারাংশ
Apache Commons CLI লাইব্রেরি exclusive এবং inclusive options এর মাধ্যমে কমান্ড লাইন আর্গুমেন্ট হ্যান্ডলিংকে আরও শক্তিশালী এবং ফ্লেক্সিবল করে তোলে। Exclusive options ব্যবহৃত হয় যখন দুটি বা তার বেশি অপশন একসাথে ব্যবহার করা যাবে না, এবং inclusive options ব্যবহৃত হয় যখন একাধিক অপশন একসাথে ব্যবহার করা সম্ভব। Apache Commons CLI ব্যবহার করে এই অপশনগুলোকে খুব সহজে এবং কার্যকরভাবে পরিচালনা করা যায়, যা কমান্ড লাইন অ্যাপ্লিকেশনের কার্যকারিতা বৃদ্ধি করতে সহায়ক।
Read more