Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package encapsulation;
- public class Vehicle {
- private char kjoretoy;
- private char drivstoff;
- private String regnr;
- //konstruktør
- public Vehicle(char kjoretoy, char drivstoff, String regnr) {
- if (isValidVehicle()) {
- this.kjoretoy = kjoretoy;
- this.drivstoff = drivstoff;
- this.regnr = regnr;
- }
- else {
- throw new IllegalArgumentException("Ikke gyldig");
- }
- }
- //metoder for at konstruktøren skal funke
- //om typen er motorsykkel eller bil
- private boolean isValidVehicleName(char vehicle) {
- if (vehicle == 'M' || vehicle == 'C') {
- return true;
- }
- else {
- return false;
- }
- }
- //om det er gyldig drivstoff
- private boolean isValidFuel(char fuel) {
- if (fuel == 'H' || fuel == 'E' || fuel == 'D' || fuel == 'G') {
- return true;
- }
- else {
- return false;
- }
- }
- //kun biler kan gå på hydrogen
- private boolean handleFuelHydrogen(char fuel, char vehicle) {
- if (fuel == 'H' && vehicle == 'C') {
- return false;
- }
- else {
- return true;
- }
- }
- //om det er gyldig registreringsnr
- private boolean isValidReg(String registrationNumber) {
- if (registrationNumber.matches("[A-Z]{2}[0-9]{4,5}")) {
- return true;
- }
- else {
- return false;
- }
- }
- //gyldig elbiler
- private boolean isValidEl(char fuel, String registrationNumber) {
- if (fuel != 'E' && (registrationNumber.substring(0, 2) == "EL" || registrationNumber.substring(0, 2) == "EK")) {
- return false;
- }
- else {
- return true;
- }
- }
- //hydrogenbiler starter på HY
- private boolean isValidHydrogen(char fuel, String registrationNumber) {
- if (fuel != 'H' && registrationNumber.substring(0, 2) == "HY") {
- return false;
- }
- else {
- return true;
- }
- }
- //motorsykler skal ha 4 og biler 5
- private boolean isValidVehicleRegnr(char vehicle, String registrationNumber) {
- if ((vehicle == 'C' && registrationNumber.length() == 5) || (vehicle == 'M' && registrationNumber.length() == 4)) {
- return true;
- }
- else {
- return false;
- }
- }
- //trekke sammen alle metodene til konstruktøren
- private boolean isValidVehicle() {
- if (isValidVehicleName(kjoretoy) && isValidFuel(drivstoff) && handleFuelHydrogen(drivstoff, kjoretoy)
- && isValidReg(regnr) && isValidEl(drivstoff, regnr) && isValidHydrogen(drivstoff, regnr)
- && isValidVehicleRegnr(kjoretoy, regnr)) {
- return true;
- }
- else {
- return false;
- }
- }
- //sjekker om gyldig regnr
- private boolean isValidNewRegnr(String newRegnr) {
- if (isValidReg(newRegnr) && isValidEl(drivstoff, newRegnr) && isValidHydrogen(drivstoff, newRegnr)
- && isValidVehicleRegnr(kjoretoy, newRegnr)) {
- return true;
- }
- else {
- return false;
- }
- }
- public char getFuelType() {
- return drivstoff;
- }
- public String getRegistrationNumber() {
- return regnr;
- }
- public void setRegistrationNumber(String newRegnr) {
- if (isValidNewRegnr(newRegnr)) {
- this.regnr = newRegnr;
- }
- else {
- throw new IllegalArgumentException("Ugyldig registreringsnr");
- }
- }
- public char getVehicleType() {
- return kjoretoy;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement