ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.অবজেক্ট
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


পার্সড কমান্ড লাইন আর্গুমেন্ট থেকে Option ক্ষেত্রগুলিকে পপুলেট করে।

পাস করা স্ট্রিং[]-এ স্ট্রিংগুলিকে বাম থেকে ডানে পার্স করা হয়। প্রতিটি স্ট্রিং একটি সংক্ষিপ্ত বিকল্প হিসাবে শ্রেণীবদ্ধ করা হয় (যেমন "-v"), একটি দীর্ঘ বিকল্প (যেমন "--verbose"), একটি বিকল্পের একটি যুক্তি (যেমন "-f out.txt"-এ "out.txt"। "), অথবা একটি অ-বিকল্প অবস্থানগত যুক্তি।

প্রতিটি অপশন আর্গুমেন্ট অবশ্যই এক বা একাধিক Option ফিল্ডে ম্যাপ করতে হবে। একটি দীর্ঘ বিকল্প Option নামের সাথে মানচিত্র এবং একটি সংক্ষিপ্ত বিকল্পটি Option সংক্ষিপ্ত নামের সাথে মানচিত্র করে। প্রতিটি বিকল্পের নাম এবং বিকল্পের সংক্ষিপ্ত নাম অবশ্যই একই বস্তুর মধ্যে থাকা অন্যান্য সমস্ত Option ক্ষেত্রের ক্ষেত্রে অনন্য হতে হবে।

একটি একক বিকল্প যুক্তি একাধিক অবজেক্ট জুড়ে একই নামের সাথে একাধিক Option ক্ষেত্রে ম্যাপ করা যেতে পারে। Option আর্গুমেন্টগুলি একটি একক অবজেক্টের মধ্যে একটি Option ফিল্ডকে অনন্যভাবে উল্লেখ করার জন্য নামস্থানে রাখা যেতে পারে সেই অবজেক্টের পূর্ণ শ্রেণীর নাম ব্যবহার করে বা এর OptionClass উপনাম মান ':' দ্বারা পৃথক করা। যেমন

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

একটি সহজ সংক্ষিপ্ত বিকল্প হল একটি "-" এর পরে একটি ছোট বিকল্প অক্ষর। যদি বিকল্পটির জন্য একটি আর্গুমেন্টের প্রয়োজন হয় (যেটি যেকোন নন-বুলিয়ান বিকল্পের ক্ষেত্রে সত্য), এটি একটি পৃথক প্যারামিটার হিসাবে লেখা হতে পারে, তবে এটির প্রয়োজন নেই। অর্থাৎ, "-f out.txt" এবং "-fout.txt" উভয়ই গ্রহণযোগ্য।

একটি একক "-" এর পরে একাধিক সংক্ষিপ্ত বিকল্প নির্দিষ্ট করা সম্ভব যতক্ষণ পর্যন্ত সমস্ত (সম্ভবত শেষটি ছাড়া) আর্গুমেন্টের প্রয়োজন না হয়।

একটি দীর্ঘ বিকল্প "--" দিয়ে শুরু হয় এবং তারপরে কয়েকটি অক্ষর থাকে। যদি বিকল্পটির জন্য একটি আর্গুমেন্টের প্রয়োজন হয়, তাহলে এটি সরাসরি বিকল্পের নামের পরে লেখা হতে পারে, "=" দ্বারা পৃথক করা, বা পরবর্তী যুক্তি হিসাবে। (অর্থাৎ, "--file=out.txt" বা "--file out.txt"।)

একটি বুলিয়ান দীর্ঘ বিকল্প '--নাম' স্বয়ংক্রিয়ভাবে একটি '--না-নাম' সহচর পায়। একটি বিকল্প "--পতাকা" দেওয়া হয়েছে, তারপর, "--পতাকা", "-না-পতাকা", "--পতাকা=সত্য" এবং "--পতাকা= মিথ্যা" সবই বৈধ, যদিও "--পতাকা" নয় সত্য" বা "--পতাকা মিথ্যা" অনুমোদিত নয় (যেহেতু "--পতাকা" নিজেই যথেষ্ট, নিম্নলিখিত "সত্য" বা "মিথ্যা" আলাদাভাবে ব্যাখ্যা করা হয়েছে)। আপনি "সত্য" এবং "মিথ্যা" এর প্রতিশব্দ হিসাবে "হ্যাঁ" এবং "না" ব্যবহার করতে পারেন।

প্রতিটি স্ট্রিং একটি "-" দিয়ে শুরু হয় না এবং একটি পূর্ববর্তী বিকল্পের প্রয়োজনীয় আর্গুমেন্ট নয়, একটি বিকল্পহীন অবস্থানগত যুক্তি, যেমনটি সমস্ত ধারাবাহিক স্ট্রিং। একটি "--" এর পরে প্রতিটি স্ট্রিং হল একটি বিকল্পহীন অবস্থানগত যুক্তি।

বিকল্পগুলির সাথে সম্পর্কিত ক্ষেত্রগুলি আপডেট করা হয় যেহেতু তাদের বিকল্পগুলি প্রক্রিয়া করা হয়৷ যেকোন অবশিষ্ট অবস্থানগত আর্গুমেন্ট একটি List<String> হিসাবে ফেরত দেওয়া হয়।

এখানে একটি সহজ উদাহরণ:

 // Non-@Option fields will be ignored.
 class Options {
     @Option(name = "quiet", shortName = 'q')
     boolean quiet = false;

     // Here the user can use --no-color.
     @Option(name = "color")
     boolean color = true;

     @Option(name = "mode", shortName = 'm')
     String mode = "standard; // Supply a default just by setting the field.

     @Option(name = "port", shortName = 'p')
     int portNumber = 8888;

     // There's no need to offer a short name for rarely-used options.
     @Option(name = "timeout" )
     double timeout = 1.0;

     @Option(name = "output-file", shortName = 'o' })
     File output;

     // Multiple options are added to the collection.
     // The collection field itself must be non-null.
     @Option(name = "input-file", shortName = 'i')
     List<File> inputs = new ArrayList<File>();

 }

 Options options = new Options();
 List<String> posArgs = new OptionParser(options).parse("--input-file", "/tmp/file1.txt");
 for (File inputFile : options.inputs) {
     if (!options.quiet) {
        ...
     }
     ...

 }

 
আরও দেখুন:
  • getopt(1) ম্যান পেজ
  • পাইথনের "অপ্টপার্স" মডিউল (http://docs.python.org/library/optparse.html)
  • POSIX "ইউটিলিটি সিনট্যাক্স নির্দেশিকা" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • GNU "কমান্ড লাইন ইন্টারফেসের জন্য স্ট্যান্ডার্ডস" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

আরো দেখুন:

সারসংক্ষেপ

পাবলিক কনস্ট্রাক্টর

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

বস্তুর সংগ্রহের জন্য একটি ArgsOptionParser তৈরি করে।

ArgsOptionParser (Object... optionSources)

এক বা একাধিক বস্তুর জন্য একটি ArgsOptionParser তৈরি করে।

পাবলিক পদ্ধতি

getInopOptions ()

কোনো ডিফল্ট মান পরিবর্তন করেনি এমন বিকল্পগুলির সেট প্রদান করে।

static String getOptionHelp (boolean importantOnly, Object optionObject)

সমস্ত Option ক্ষেত্রের জন্য আউটপুট সহায়তা পাঠ্য অপশন অবজেক্ট .

parse (String... args)

কন্সট্রাক্টরকে দেওয়া 'optionSource'-এর @Option ক্ষেত্রগুলি সেট করে কমান্ড-লাইন আর্গুমেন্ট 'args' পার্স করে।

parse ( args) parse ( args)

বিকল্প parse(String) পদ্ধতি যা আর্গুমেন্টের একটি ERROR(/List) নেয়

parseBestEffort ( args) parseBestEffort ( args)

বিকল্প parseBestEffort(String) পদ্ধতি যা আর্গুমেন্টের একটি ERROR(/List) নেয়

parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue)

বিকল্প parseBestEffort(String) পদ্ধতি যা আর্গুমেন্টের একটি ERROR(/List) নেয় এবং শেষ পর্যন্ত পার্সিং চালিয়ে যেতে বাধ্য করা যেতে পারে, এমনকি কিছু args পার্স না করলেও।

parseBestEffort (String... args)

parse(String) এর একটি সেরা প্রচেষ্টা সংস্করণ।

void validateMandatoryOptions ()

নিশ্চিত করে যে বাধ্যতামূলক হিসাবে চিহ্নিত সমস্ত ক্ষেত্র সেট করা হয়েছে৷

পাবলিক কনস্ট্রাক্টর

ArgsOptionParser

public ArgsOptionParser ( optionSources)

বস্তুর সংগ্রহের জন্য একটি ArgsOptionParser তৈরি করে।

পরামিতি
optionSources : কনফিগার বস্তু।

নিক্ষেপ করে
ConfigurationException যদি কনফিগার বস্তুগুলি ভুলভাবে কনফিগার করা হয়।

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

এক বা একাধিক বস্তুর জন্য একটি ArgsOptionParser তৈরি করে।

পরামিতি
optionSources Object : কনফিগার অবজেক্ট।

নিক্ষেপ করে
ConfigurationException যদি কনফিগার বস্তুগুলি ভুলভাবে কনফিগার করা হয়।

পাবলিক পদ্ধতি

getInopOptions

public  getInopOptions ()

কোনো ডিফল্ট মান পরিবর্তন করেনি এমন বিকল্পগুলির সেট প্রদান করে।

রিটার্নস

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

সমস্ত Option ক্ষেত্রের জন্য আউটপুট সহায়তা পাঠ্য অপশন অবজেক্ট .

প্রতিটি বিকল্পের জন্য সহায়তা পাঠ্য নিম্নলিখিত বিন্যাসে হবে

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
বিকল্প ক্ষেত্রটি শূন্য বা খালি থাকলে 'ডিফল্ট..." পাঠ্যটি বাদ দেওয়া হবে।

পরামিতি
importantOnly boolean : true হলে শুধুমাত্র গুরুত্বপূর্ণ বিকল্পের জন্য প্রিন্ট সাহায্য

optionObject Object : যে অবজেক্টের জন্য হেল্প টেক্সট প্রিন্ট করতে হবে

রিটার্নস
String সমস্ত বিকল্প ক্ষেত্রের জন্য ব্যবহারকারী-বান্ধব সহায়তা পাঠ্য ধারণকারী একটি স্ট্রিং

পার্স

public  parse (String... args)

কন্সট্রাক্টরকে দেওয়া 'optionSource'-এর @Option ক্ষেত্রগুলি সেট করে কমান্ড-লাইন আর্গুমেন্ট 'args' পার্স করে।

পরামিতি
args String

রিটার্নস
অবস্থানগত আর্গুমেন্টগুলির একটি ERROR(/List) সমস্ত বিকল্প প্রক্রিয়া করার পরে অবশিষ্ট থাকে৷

নিক্ষেপ করে
ConfigurationException যদি আর্গুমেন্ট পার্সিং ত্রুটি ঘটেছে.

পার্স

public  parse ( args)

বিকল্প parse(String) পদ্ধতি যা আর্গুমেন্টের একটি ERROR(/List) নেয়

পরামিতি
args

রিটার্নস
অবস্থানগত আর্গুমেন্টগুলির একটি ERROR(/List) সমস্ত বিকল্প প্রক্রিয়া করার পরে অবশিষ্ট থাকে৷

নিক্ষেপ করে
ConfigurationException যদি আর্গুমেন্ট পার্সিং ত্রুটি ঘটেছে.

parseBestEffort

public  parseBestEffort ( args)

বিকল্প parseBestEffort(String) পদ্ধতি যা আর্গুমেন্টের একটি ERROR(/List) নেয়

পরামিতি
args

রিটার্নস
বাম আর্গুমেন্টের একটি ERROR(/List)

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

বিকল্প parseBestEffort(String) পদ্ধতি যা আর্গুমেন্টের একটি ERROR(/List) নেয় এবং শেষ পর্যন্ত পার্সিং চালিয়ে যেতে বাধ্য করা যেতে পারে, এমনকি কিছু args পার্স না করলেও।

পরামিতি
args : যে তালিকায় বাম ওভার আর্গ থাকবে।

forceContinue boolean : কিছু আর্গ পার্স না করলেও এটি পার্স করা চালিয়ে গেলে সত্য।

রিটার্নস
বাম আর্গুমেন্টের একটি ERROR(/List)

parseBestEffort

public  parseBestEffort (String... args)

parse(String) এর একটি সেরা প্রচেষ্টা সংস্করণ। যদি একটি ConfigurationException নিক্ষেপ করা হয়, তবে সেই ব্যতিক্রমটি অভ্যন্তরীণভাবে ক্যাপচার করা হয়, এবং অবশিষ্ট আর্গুমেন্টগুলি (যে যুক্তিটি ব্যতিক্রমটি নিক্ষেপের কারণ সহ) ফিরিয়ে দেওয়া হয়। এই পদ্ধতি নিক্ষেপ না.

পরামিতি
args String

রিটার্নস
বাম আর্গুমেন্টের একটি ERROR(/List)

validateMandatoryOptions

public void validateMandatoryOptions ()

নিশ্চিত করে যে বাধ্যতামূলক হিসাবে চিহ্নিত সমস্ত ক্ষেত্র সেট করা হয়েছে৷

নিক্ষেপ করে
com.android.tradefed.config.ConfigurationException
ConfigurationException