Guava লাইব্রেরি Java-তে ইনপুট ভ্যালিডেশন সহজ করতে Validators ক্লাসের মতো শক্তিশালী টুল সরবরাহ করে। ইনপুট ভ্যালিডেশন এমন একটি প্রক্রিয়া যেখানে আমরা নিশ্চিত করি যে ব্যবহারকারী বা সিস্টেমের কাছ থেকে পাওয়া ইনপুট সঠিক এবং নির্দিষ্ট শর্ত পূর্ণ করে। Guava লাইব্রেরি ইনপুট ভ্যালিডেশনের জন্য Preconditions এবং অন্যান্য ইউটিলিটি ক্লাস সরবরাহ করে, যা ডেভেলপারদের এই কাজ সহজে করতে সহায়তা করে।
Guava Validators: Input Validation এর জন্য ব্যবহৃত ইউটিলিটি
Guava এর Preconditions এবং Validators ক্লাসগুলো মূলত ইনপুট ভ্যালিডেশন এবং শর্ত যাচাই করার জন্য ব্যবহৃত হয়। এগুলি ব্যবহার করে আপনি সহজেই ইনপুট যাচাই করতে পারেন এবং ইনপুটের ভুল থাকলে ব্যতিক্রম (exception) ছুড়ে তা ধরতে পারেন।
Preconditions ক্লাস: ইনপুট ভ্যালিডেশন
Guava লাইব্রেরির Preconditions ক্লাসটি প্রধানত বিভিন্ন ইনপুট যাচাই করার জন্য ব্যবহৃত হয়। এটি চেক করে যে ইনপুট কিছু নির্দিষ্ট শর্ত পূর্ণ করছে কিনা। যদি শর্ত পূর্ণ না হয়, তবে এটি একটি ব্যতিক্রম (exception) ছুঁড়ে।
Preconditions ক্লাসের কিছু জনপ্রিয় মেথড:
checkArgument(): আর্গুমেন্ট (যেমন মেথডের ইনপুট প্যারামিটার) যাচাই করতে ব্যবহৃত হয়।checkNotNull(): কোনো অবজেক্ট বা ভ্যালুnullনা হওয়া নিশ্চিত করতে ব্যবহৃত হয়।checkState(): অবস্থা (state) যাচাই করতে ব্যবহৃত হয়।checkElementIndex(): ইনডেক্সের সীমানা যাচাই করতে ব্যবহৃত হয়।
Preconditions ব্যবহার করে ইনপুট ভ্যালিডেশন
1. checkArgument() ব্যবহার করা
ধরা যাক, একটি মেথডে আপনি একটি বয়েস (age) গ্রহণ করছেন এবং চাইছেন যে এটি একটি পজিটিভ মান হোক:
import com.google.common.base.Preconditions;
public class InputValidationExample {
public static void main(String[] args) {
int age = -5;
// checkArgument() ব্যবহার করে বয়েস যাচাই করা
Preconditions.checkArgument(age > 0, "Age must be positive: %s", age);
}
}
ব্যাখ্যা:
- এখানে,
checkArgument()মেথডটি যাচাই করেছে যে বয়েস (age) পজিটিভ কিনা। যদি বয়েস পজিটিভ না হয়, তবে এটি একটিIllegalArgumentExceptionছোড়বে এবং ত্রুটির বার্তা প্রদর্শন করবে।
আউটপুট:
Exception in thread "main" java.lang.IllegalArgumentException: Age must be positive: -5
2. checkNotNull() ব্যবহার করা
একটি সাধারণ ইনপুট ভ্যালিডেশন উদাহরণ যেখানে আমরা null চেক করছি:
import com.google.common.base.Preconditions;
public class InputValidationExample {
public static void main(String[] args) {
String name = null;
// checkNotNull() ব্যবহার করে নাম যাচাই করা
Preconditions.checkNotNull(name, "Name cannot be null");
}
}
ব্যাখ্যা:
- এখানে,
checkNotNull()মেথডটি নিশ্চিত করে যে নাম (name)nullনা হয়। যদি এটিnullহয়, তাহলে এটি একটিNullPointerExceptionছোড়ে এবং ত্রুটির বার্তা দেখায়।
আউটপুট:
Exception in thread "main" java.lang.NullPointerException: Name cannot be null
3. checkState() ব্যবহার করা
ধরা যাক, একটি প্রোগ্রামে আমরা একটি অবস্থা যাচাই করতে চাই, যেমন একটি ফ্ল্যাগ চেক করা যে এটি সক্রিয় (active) অবস্থায় রয়েছে কিনা:
import com.google.common.base.Preconditions;
public class InputValidationExample {
public static void main(String[] args) {
boolean isActive = false;
// checkState() ব্যবহার করে অবস্থা যাচাই করা
Preconditions.checkState(isActive, "The system must be active to perform this operation");
}
}
ব্যাখ্যা:
- এখানে,
checkState()মেথডটি যাচাই করেছে যেisActiveফ্ল্যাগটিtrueকিনা। যদি এটিfalseহয়, তাহলে একটিIllegalStateExceptionছোড়া হবে।
আউটপুট:
Exception in thread "main" java.lang.IllegalStateException: The system must be active to perform this operation
কেন Preconditions ব্যবহার করা উচিত?
- ক্লিন কোড:
Preconditionsব্যবহার করে আপনি কোডে ইনপুট ভ্যালিডেশন খুবই পরিষ্কার ও সহজভাবে করতে পারেন। - বাগ কমানো: এর মাধ্যমে ইনপুট যাচাই করলে, আপনি অনেক বড় সমস্যা বা বাগ থেকে বাঁচতে পারবেন।
- স্মার্ট ব্যতিক্রম (Exception) হ্যান্ডলিং:
Preconditionsমেথডের মাধ্যমে আপনার ইনপুট যাচাই করার সময় যে ব্যতিক্রমটি ছোড়া হয়, তা সহজে হ্যান্ডল করা যায়।
Guava লাইব্রেরির Preconditions ক্লাস ইনপুট ভ্যালিডেশনের জন্য একটি খুবই শক্তিশালী এবং কার্যকরী টুল সরবরাহ করে। এটি বিভিন্ন শর্ত যাচাই করতে সাহায্য করে, যেমন আর্গুমেন্ট যাচাই, null চেক, অবস্থা যাচাই ইত্যাদি। এই ক্লাসটি ব্যবহার করে আপনি আপনার কোডের মান বজায় রাখতে পারবেন এবং ইনপুট সম্পর্কিত ত্রুটিগুলি সহজেই ধরতে পারবেন।
Read more