Positional Arguments এর জন্য Custom Validation

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

221

Apache Commons CLI লাইব্রেরি কমান্ড লাইন আর্গুমেন্ট পার্সিংয়ের জন্য শক্তিশালী সমাধান প্রদান করে। সাধারণত, কমান্ড লাইন অপশনগুলি (যেমন -f, -v) কীগুলি বা ফ্ল্যাগস হিসেবে ব্যবহার করা হয়, কিন্তু Positional Arguments হল এমন আর্গুমেন্টস যেগুলি নির্দিষ্ট অবস্থানে প্রদান করা হয় এবং তাদের কোনো অপশন থাকে না (যেমন একটি ফাইল পাথ, নাম, ইত্যাদি)।

এই টিউটোরিয়ালে আমরা আলোচনা করব কিভাবে Positional Arguments এর জন্য custom validation করা যায়, যাতে কমান্ড লাইন ইনপুটের সঠিকতা নিশ্চিত করা যায়।

Positional Arguments এর ধারণা

Positional arguments হল আর্গুমেন্টস যেগুলি কমান্ড লাইন পরামিতির মধ্যে নির্দিষ্ট অবস্থানে দেওয়া হয়। এটি সাধারণত অপশন ছাড়া সরাসরি মান প্রদান করার জন্য ব্যবহৃত হয়। যেমন:

java MyApp <inputFile> <outputFile>

এখানে inputFile এবং outputFile হল positional arguments, এবং তাদের অবস্থান দ্বারা নির্দেশিত হয়।

Apache Commons CLI-তে Positional Arguments এর জন্য Custom Validation

Apache Commons CLI তে positional arguments ব্যবহার করার জন্য সাধারণত CommandLine এর getArgs() মেথড ব্যবহার করা হয়। আপনি custom validation তৈরি করতে পারেন যাতে positional arguments সঠিকভাবে দেওয়া হয়েছে কিনা তা যাচাই করা যায়।


উদাহরণ: Positional Arguments এর জন্য Custom Validation

ধরি, একটি অ্যাপ্লিকেশন আছে যেটি দুটি positional argument নেবে:

  1. inputFile: ইনপুট ফাইল পাথ
  2. outputFile: আউটপুট ফাইল পাথ

আমরা চাই, ব্যবহারকারী অবশ্যই দুটি আর্গুমেন্ট প্রদান করবে এবং সেগুলির ফরম্যাট সঠিক হতে হবে। সেক্ষেত্রে custom validation ব্যবহার করে আমরা এসব যাচাই করতে পারব।

কোড উদাহরণ:

import org.apache.commons.cli.*;

public class PositionalArgumentsExample {

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

        // পার্সার তৈরি
        CommandLineParser parser = new DefaultParser();
        HelpFormatter formatter = new HelpFormatter();

        try {
            // কমান্ড লাইন আর্গুমেন্ট পার্স করা
            CommandLine line = parser.parse(options, args);

            // positional arguments চেক করা
            String[] positionalArgs = line.getArgs();

            // custom validation: দুইটি আর্গুমেন্ট হতে হবে
            if (positionalArgs.length != 2) {
                System.out.println("Error: You must provide exactly two arguments: input file and output file.");
                formatter.printHelp("PositionalArgumentsExample", options);
                return;
            }

            String inputFile = positionalArgs[0];
            String outputFile = positionalArgs[1];

            // ফাইল পাথের সঠিকতা যাচাই করা (Custom validation)
            if (!inputFile.endsWith(".txt")) {
                System.out.println("Error: Input file must have a .txt extension.");
                return;
            }

            // আউটপুট ফাইলের সঠিকতা যাচাই করা
            if (!outputFile.endsWith(".txt")) {
                System.out.println("Error: Output file must have a .txt extension.");
                return;
            }

            // ফাইল পাথ প্রিন্ট করা
            System.out.println("Input File: " + inputFile);
            System.out.println("Output File: " + outputFile);

        } catch (ParseException exp) {
            System.out.println("Error parsing the command line: " + exp.getMessage());
            formatter.printHelp("PositionalArgumentsExample", options);
        }
    }
}

কোডের ব্যাখ্যা:

  1. Positional arguments গ্রহণ: এখানে getArgs() মেথডের মাধ্যমে positional arguments নেওয়া হয়েছে, এবং এটি একটি অ্যারে হিসেবে আর্গুমেন্টগুলিকে সংরক্ষণ করে।
  2. Custom validation:
    • প্রথমত, যাচাই করা হচ্ছে যে দুইটি আর্গুমেন্ট দেওয়া হয়েছে কি না। যদি না হয়, তবে একটি ত্রুটি বার্তা প্রদর্শিত হবে।
    • এরপর, ফাইলের এক্সটেনশন যাচাই করা হচ্ছে। যদি ইনপুট বা আউটপুট ফাইলের এক্সটেনশন .txt না হয়, তবে একটি ত্রুটি বার্তা দেখানো হবে।
  3. HelpFormatter ব্যবহার: যদি আর্গুমেন্টস ভুলভাবে দেওয়া হয়, তবে HelpFormatter ব্যবহৃত হচ্ছে যাতে অ্যাপ্লিকেশনটি কিভাবে ব্যবহার করতে হবে তা ব্যবহারকারী জানতে পারে।

আউটপুট:

  • যদি দুটি আর্গুমেন্ট সঠিকভাবে প্রদান করা হয়:

    java PositionalArgumentsExample input.txt output.txt
    Input File: input.txt
    Output File: output.txt
    
  • যদি দুটি আর্গুমেন্ট না দেওয়া হয়:

    Error: You must provide exactly two arguments: input file and output file.
    
  • যদি ইনপুট ফাইলের এক্সটেনশন .txt না হয়:

    Error: Input file must have a .txt extension.
    
  • যদি আউটপুট ফাইলের এক্সটেনশন .txt না হয়:

    Error: Output file must have a .txt extension.
    

Positional Arguments এর জন্য Custom Validation এর সুবিধা

  1. ভুল ইনপুট প্রতিরোধ: আপনি খুব সহজে যাচাই করতে পারেন যে ব্যবহারকারী সঠিক ফরম্যাটে positional arguments প্রদান করেছেন কিনা। এটি অ্যাপ্লিকেশনের সঠিক কার্যক্রম নিশ্চিত করে।
  2. ব্যবহারকারী-বান্ধব ত্রুটি বার্তা: ব্যবহারকারী যদি ভুল আর্গুমেন্ট প্রদান করেন, তবে সুনির্দিষ্ট ত্রুটি বার্তা দিয়ে তাদের সঠিক ইনপুট প্রদান করতে সহায়তা করা যায়।
  3. ফাইল বা ডিরেক্টরি যাচাই: ফাইল পাথ বা ডিরেক্টরি যাচাই করা যেতে পারে, যেমন কোন ফাইল উপস্থিত রয়েছে বা ফাইল এক্সটেনশন সঠিক কিনা।

সারাংশ

Positional Arguments হল এমন আর্গুমেন্ট যা কমান্ড লাইনের নির্দিষ্ট অবস্থানে থাকে এবং কোনো নির্দিষ্ট অপশন বা ফ্ল্যাগ থাকে না। Apache Commons CLI এর মাধ্যমে custom validation করা সম্ভব, যেখানে আপনি positional arguments যাচাই করতে পারেন এবং সঠিক ইনপুট নিশ্চিত করতে পারেন। এই বৈশিষ্ট্যটি কমান্ড লাইন অ্যাপ্লিকেশনগুলির জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি ব্যবহারকারীকে সঠিক আর্গুমেন্ট প্রদান করতে উৎসাহিত করে এবং অ্যাপ্লিকেশনের সঠিক কার্যক্রম নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...