Sub-command Parsing এবং Validation

Sub-commands ব্যবস্থাপনা - অ্যাপাচি কমন্স সিআলআই (Apache Commons CLI) - Java Technologies

270

Apache Commons CLI লাইব্রেরি Java অ্যাপ্লিকেশনের জন্য কমান্ড লাইন আর্গুমেন্ট হ্যান্ডলিং খুবই সহজ এবং কার্যকরী করে তোলে। এর মাধ্যমে আপনি একাধিক সাব-কমান্ড (sub-command) তৈরি করতে পারেন এবং প্রত্যেকটি সাব-কমান্ডের জন্য আলাদা কমান্ড লাইন বিকল্প (options) এবং আর্গুমেন্ট (arguments) প্রক্রিয়া করতে পারেন। Sub-command Parsing এবং Validation এর মাধ্যমে আপনি একটি শক্তিশালী এবং নমনীয় কমান্ড লাইন ইন্টারফেস তৈরি করতে পারবেন যা বিভিন্ন ফাংশনালিটির জন্য বিভিন্ন সাব-কমান্ড গ্রহণ করে।


Sub-command Parsing এবং Validation এর ভূমিকা

  1. Sub-command Parsing: সাব-কমান্ডগুলি একাধিক কার্যক্রম বা অপারেশনকে পৃথক করে দেয়, যেখানে প্রতিটি সাব-কমান্ডের জন্য আলাদা কমান্ড লাইন বিকল্প বা আর্গুমেন্ট থাকতে পারে। উদাহরণস্বরূপ, git কমান্ডে git commit, git push, git pull ইত্যাদি আলাদা সাব-কমান্ড হতে পারে।
  2. Validation: সাব-কমান্ড ব্যবহারের সময় প্রয়োজনীয় বিকল্প বা আর্গুমেন্ট যাচাই (validate) করা খুব গুরুত্বপূর্ণ। সঠিক ইনপুট প্রদান না করলে ত্রুটি (error) বার্তা প্রদর্শন করা উচিত।

উদাহরণ: Sub-command Parsing এবং Validation

এই উদাহরণে আমরা একটি অ্যাপ্লিকেশন তৈরি করব, যেখানে দুটি সাব-কমান্ড থাকবে:

  1. add – একটি ফাইল যোগ করবে।
  2. remove – একটি ফাইল মুছে ফেলবে।

এই দুটি সাব-কমান্ডের জন্য আলাদা বিকল্প এবং আর্গুমেন্ট থাকবে। যদি ব্যবহারকারী সঠিক সাব-কমান্ড বা আর্গুমেন্ট প্রদান না করে, তাহলে একটি ত্রুটি বার্তা প্রদর্শিত হবে।


উদাহরণ কোড:

import org.apache.commons.cli.*;

public class SubCommandParsingExample {

    public static void main(String[] args) {
        // মূল অপশন তৈরি
        Options options = new Options();

        // "add" সাব-কমান্ড বিকল্প
        Option addFileOption = new Option("f", "file", true, "File to add");
        addFileOption.setRequired(true);
        options.addOption(addFileOption);

        // "remove" সাব-কমান্ড বিকল্প
        Option removeFileOption = new Option("f", "file", true, "File to remove");
        removeFileOption.setRequired(true);
        options.addOption(removeFileOption);

        // "help" বিকল্প
        Option helpOption = new Option("h", "help", false, "Show help");
        options.addOption(helpOption);

        // সাব-কমান্ড অপশন গ্রুপ
        CommandLineParser parser = new DefaultParser();
        CommandLine cmd = null;

        try {
            // প্রথমে কমান্ড পার্স করা
            cmd = parser.parse(options, args);

            // সাহায্য প্রদর্শন
            if (cmd.hasOption("h")) {
                HelpFormatter formatter = new HelpFormatter();
                formatter.printHelp("SubCommandParsingExample", options);
                return;
            }

            // সাব-কমান্ড চেক করা
            if (cmd.hasOption("f")) {
                String file = cmd.getOptionValue("f");

                if (args[0].equals("add")) {
                    System.out.println("Adding file: " + file);
                } else if (args[0].equals("remove")) {
                    System.out.println("Removing file: " + file);
                } else {
                    System.out.println("Invalid sub-command. Use 'add' or 'remove'.");
                    return;
                }
            }

        } catch (ParseException e) {
            System.out.println("Error parsing command line: " + e.getMessage());
            HelpFormatter formatter = new HelpFormatter();
            formatter.printHelp("SubCommandParsingExample", options);
        }
    }
}

ব্যাখ্যা:

  1. Options তৈরি:
    • add এবং remove সাব-কমান্ডের জন্য বিকল্প -f বা --file তৈরি করা হয়েছে, যা বাধ্যতামূলক।
    • help বিকল্প -h বা --help তৈরি করা হয়েছে যাতে সহায়ক বার্তা প্রদর্শন করা যায়।
  2. Sub-command চেকিং:
    • args[0].equals("add") বা args[0].equals("remove") চেক করার মাধ্যমে প্রথম আর্গুমেন্ট (সাব-কমান্ড) যাচাই করা হয়। যদি এটি add বা remove না হয়, তাহলে ত্রুটি বার্তা প্রদর্শন করা হবে।
  3. HelpFormatter:
    • ব্যবহারকারী যদি -h বা --help বিকল্প দেন, তাহলে HelpFormatter ব্যবহার করে সহায়ক বার্তা প্রদর্শন করা হবে।
  4. বাধ্যতামূলক আর্গুমেন্ট: -f বিকল্পের জন্য setRequired(true) ব্যবহার করা হয়েছে, যা এই বিকল্পটিকে বাধ্যতামূলক (mandatory) করে তোলে।

কমান্ড লাইনের উদাহরণ:

  1. ফাইল যোগ করা:

    java SubCommandParsingExample add -f myfile.txt
    

    আউটপুট:

    Adding file: myfile.txt
    
  2. ফাইল মুছে ফেলা:

    java SubCommandParsingExample remove -f myfile.txt
    

    আউটপুট:

    Removing file: myfile.txt
    
  3. অযাচিত সাব-কমান্ড ব্যবহার:

    java SubCommandParsingExample delete -f myfile.txt
    

    আউটপুট:

    Invalid sub-command. Use 'add' or 'remove'.
    
  4. সহায়ক বার্তা প্রদর্শন:

    java SubCommandParsingExample -h
    

    আউটপুট:

    Usage: SubCommandParsingExample [options]
    Options:
      -h, --help       Show help
      -f, --file <file>  File to add/remove
    

Apache Commons CLI-এর Sub-command Parsing এবং Validation ফিচারের মাধ্যমে আপনি শক্তিশালী এবং নমনীয় CLI অ্যাপ্লিকেশন তৈরি করতে পারেন। এটি আপনাকে একাধিক সাব-কমান্ড এবং তাদের সাথে সম্পর্কিত বিকল্প প্রক্রিয়া করতে সক্ষম করে এবং ব্যবহারকারীকে সঠিক ইনপুট প্রদান করতে সহায়ক বার্তা প্রদর্শন করতে পারে। এটি Java কমান্ড লাইন অ্যাপ্লিকেশনের জন্য অত্যন্ত কার্যকরী এবং প্রয়োজনীয় টুল।

Content added By
Promotion

Are you sure to start over?

Loading...