From fadd65cdefb6745294d260fde773b5858f02423f Mon Sep 17 00:00:00 2001 From: Yar3k Date: Mon, 8 Nov 2021 21:46:51 +0200 Subject: [PATCH] Import --- Task3/.idea/.gitignore | 8 + Task3/.idea/description.html | 1 + Task3/.idea/encodings.xml | 6 + Task3/.idea/libraries/lib.xml | 10 + Task3/.idea/misc.xml | 12 + Task3/.idea/modules.xml | 8 + Task3/.idea/project-template.xml | 3 + Task3/.idea/runConfigurations.xml | 10 + Task3/.idea/uiDesigner.xml | 124 ++ Task3/Task3.iml | 28 + Task3/lib/json-simple-1.1.jar | Bin 0 -> 16046 bytes .../Task3/com/lib/EmailValidator.class | Bin 0 -> 2559 bytes .../Task3/com/lib/PasswordChecker.class | Bin 0 -> 1117 bytes .../Task3/com/lib/PhoneValidator.class | Bin 0 -> 2382 bytes .../Task3/com/lib/files/phones.json | 1 + .../production/Task3/com/lib/files/tlds.txt | 1343 +++++++++++++++++ .../out/production/Task3/com/main/Main.class | Bin 0 -> 5030 bytes .../Task3/com/test/EmailValidatorShould.class | Bin 0 -> 2211 bytes .../production/Task3/com/test/LibTest.class | Bin 0 -> 2305 bytes .../com/test/PasswordCheckerShould.class | Bin 0 -> 2057 bytes .../Task3/com/test/PhoneValidatorShould.class | Bin 0 -> 2221 bytes .../Task3/com/vartotojai/Validators.class | Bin 0 -> 2319 bytes .../Task3/com/vartotojai/Vartotojas.class | Bin 0 -> 1968 bytes .../Task3/com/vartotojai/Veiksmai.class | Bin 0 -> 5234 bytes .../production/Task3/com/vartotojai/list.csv | 3 + Task3/src/com/lib/EmailValidator.java | 55 + Task3/src/com/lib/PasswordChecker.java | 28 + Task3/src/com/lib/PhoneValidator.java | 49 + Task3/src/com/lib/files/phones.json | 1 + Task3/src/com/lib/files/tlds.txt | 1343 +++++++++++++++++ Task3/src/com/main/Main.java | 172 +++ Task3/src/com/test/EmailValidatorShould.java | 74 + Task3/src/com/test/LibTest.java | 56 + Task3/src/com/test/PasswordCheckerShould.java | 72 + Task3/src/com/test/PhoneValidatorShould.java | 69 + Task3/src/com/vartotojai/Validators.java | 34 + Task3/src/com/vartotojai/Vartotojas.java | 79 + Task3/src/com/vartotojai/Veiksmai.java | 114 ++ Task3/src/com/vartotojai/list.csv | 3 + 39 files changed, 3706 insertions(+) create mode 100644 Task3/.idea/.gitignore create mode 100644 Task3/.idea/description.html create mode 100644 Task3/.idea/encodings.xml create mode 100644 Task3/.idea/libraries/lib.xml create mode 100644 Task3/.idea/misc.xml create mode 100644 Task3/.idea/modules.xml create mode 100644 Task3/.idea/project-template.xml create mode 100644 Task3/.idea/runConfigurations.xml create mode 100644 Task3/.idea/uiDesigner.xml create mode 100644 Task3/Task3.iml create mode 100644 Task3/lib/json-simple-1.1.jar create mode 100644 Task3/out/production/Task3/com/lib/EmailValidator.class create mode 100644 Task3/out/production/Task3/com/lib/PasswordChecker.class create mode 100644 Task3/out/production/Task3/com/lib/PhoneValidator.class create mode 100644 Task3/out/production/Task3/com/lib/files/phones.json create mode 100644 Task3/out/production/Task3/com/lib/files/tlds.txt create mode 100644 Task3/out/production/Task3/com/main/Main.class create mode 100644 Task3/out/production/Task3/com/test/EmailValidatorShould.class create mode 100644 Task3/out/production/Task3/com/test/LibTest.class create mode 100644 Task3/out/production/Task3/com/test/PasswordCheckerShould.class create mode 100644 Task3/out/production/Task3/com/test/PhoneValidatorShould.class create mode 100644 Task3/out/production/Task3/com/vartotojai/Validators.class create mode 100644 Task3/out/production/Task3/com/vartotojai/Vartotojas.class create mode 100644 Task3/out/production/Task3/com/vartotojai/Veiksmai.class create mode 100644 Task3/out/production/Task3/com/vartotojai/list.csv create mode 100644 Task3/src/com/lib/EmailValidator.java create mode 100644 Task3/src/com/lib/PasswordChecker.java create mode 100644 Task3/src/com/lib/PhoneValidator.java create mode 100644 Task3/src/com/lib/files/phones.json create mode 100644 Task3/src/com/lib/files/tlds.txt create mode 100644 Task3/src/com/main/Main.java create mode 100644 Task3/src/com/test/EmailValidatorShould.java create mode 100644 Task3/src/com/test/LibTest.java create mode 100644 Task3/src/com/test/PasswordCheckerShould.java create mode 100644 Task3/src/com/test/PhoneValidatorShould.java create mode 100644 Task3/src/com/vartotojai/Validators.java create mode 100644 Task3/src/com/vartotojai/Vartotojas.java create mode 100644 Task3/src/com/vartotojai/Veiksmai.java create mode 100644 Task3/src/com/vartotojai/list.csv diff --git a/Task3/.idea/.gitignore b/Task3/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/Task3/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Task3/.idea/description.html b/Task3/.idea/description.html new file mode 100644 index 0000000..db5f129 --- /dev/null +++ b/Task3/.idea/description.html @@ -0,0 +1 @@ +Simple Java application that includes a class with main() method \ No newline at end of file diff --git a/Task3/.idea/encodings.xml b/Task3/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/Task3/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Task3/.idea/libraries/lib.xml b/Task3/.idea/libraries/lib.xml new file mode 100644 index 0000000..fa8838a --- /dev/null +++ b/Task3/.idea/libraries/lib.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Task3/.idea/misc.xml b/Task3/.idea/misc.xml new file mode 100644 index 0000000..00b4bc4 --- /dev/null +++ b/Task3/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Task3/.idea/modules.xml b/Task3/.idea/modules.xml new file mode 100644 index 0000000..c328437 --- /dev/null +++ b/Task3/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Task3/.idea/project-template.xml b/Task3/.idea/project-template.xml new file mode 100644 index 0000000..1f08b88 --- /dev/null +++ b/Task3/.idea/project-template.xml @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/Task3/.idea/runConfigurations.xml b/Task3/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/Task3/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/Task3/.idea/uiDesigner.xml b/Task3/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/Task3/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Task3/Task3.iml b/Task3/Task3.iml new file mode 100644 index 0000000..18eadff --- /dev/null +++ b/Task3/Task3.iml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Task3/lib/json-simple-1.1.jar b/Task3/lib/json-simple-1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..f395f41471a796876278a6c5667ded4632546893 GIT binary patch literal 16046 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
    S73^h#9#=f(PYUGb;^Y#CS574FxI6l0{4Cg zFO4RK8*WS#6EC>b#P8vE@Jc=H<{T1kp7xyn&+nY)fBOB`ms0?XxIKsvI1#)A0bz#Z zw*FEtHTBk3X|=v>8XiOVuGO-ZM1z>+ajmhSo5R9n)cmyKU33^k(gFw{ACG2D$pLSG z$RK-WrjCqeYMQMruMx~t@#U8!3}b{L>e*F$-*hzHH5t+c<$Mocep$j8t^{(ep*!~+ zM?YlX3(C6Yf6hx7$2A7gYHgSYtDF9(ic+D6W^WKTQMFp;!@b?Q={(izP0Gks+t8b9 zx?}lqH_3Yqi|#pGy}*-2hM3{oQ`x+KV7VS?Glla5E6*7s?XI0vQuB0UXGL#!yF>#- zl?-Xnw&Fqbtlj?WfgB`i{oa#*Zm+f1&h$`v5Q;C;H8InJKk33# z1W&3b7)plUUci_7_^BR0b(TLA@MnAc$6dZm`~>lH>P6!x`|xrPFQ3IH1N>YM|C;b& zx>;HM27x;+e#F2DMptG|m$(H!!;ihg=uCz$F9>QzIKkD>8wmXIE1n(w{?X@OmYf07 yM9LzM9NCk_JVt_n^5k)zwo}55KvnLIR_+@u0Y3Z-F%dTz%l#xF!!1IFQ2qn$*uWY9 literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/lib/PhoneValidator.class b/Task3/out/production/Task3/com/lib/PhoneValidator.class new file mode 100644 index 0000000000000000000000000000000000000000..0e7706380f3d3b47290f0d127c7092ce35990aa4 GIT binary patch literal 2382 zcmah~T~iZR7=BLJWW%~BMuU8)NI@iQbo~S*7R4wvHV|tlR;g__n*&)$b~C$+BlrCg zZLd0=={TM7!rtJF&N#hlXZkz(BYIQqdv=!)1Y17#?8oyy@B2RIIp_TO_SG8zIW!f- z&>=%o5l4cdd(C)a=yk(h)k~E%Zu$&~YnE;KGYlPLnWZF>3`jy@V44CIT`~@;IE3z9 zv1Q-2>{SNE^9|Sc9$0>jAw5>yVGj|x%p*aPQgH-F89KduAUe0<0?+zB!g_(RsOWJBA|s#A&FBA zv8jn9KB70;rOER$Mi_=1cU52W99#FSMzhZKrr~e%5UAFK2KUrip8MhgFwkPJEn35%1H zqGj`ijYfsLi$D#a+>&48Zh5m&aq2{(ge1cEv;y-o%4FhY5+`NWXwgQ6Q&@u& zV3)|-D{jB+{oC0BJ@U?m?YoWF`Dz-uQ^rk zPy(icD!7alVK>^lMs{Y&vY$BXTn~E>9XMy0l@8n zn=X4r+!eUE+2s4cm)jWjSuqhs-l*5hmd|rZSmX_jF{lOG=5D@jcpmp;)M=^j>21G~ zW!MZS{~Joa4*SCpZqZpHe&V2g3kkZ;(UVRiof(LazXbc0ZesX^uHrMG;0|5Y5P$;i z(i6j{=%%X(E)iOgc5A<*OH0W=LzbRF>Ud7?I@)-;0-l}_8}U#SikK&+1wzLWJ9tA> zQfiU^LhuBAn$`Y5yyLl+>fFMC@6oAATR2?Qwve9BzM1KmkkZnLpKv^zmM%}kQ+?_9 z76xKJijZ$5_UzqX(oQw~0pVe~9zmLZv*^K98n2@-sPGh3okbV!;WMg;QnzZIZL75# z@x;NmP-NU^toQFg&_#S6Y4SMIWPmj3)l!30^bb(A)KE};A~p0vd(o0dobR9mun&W6 z5)HJ{4z#6}5bKFik|jKdQvCxdXsAf3<1E3P0Q$=Z<##_0?>i)-X3VVN1KD@($Bfro*R#a2hfs3Xw$h^9YAT+>*_my{)qNj%0^)RnNr xAmT~(P7E?`$xws8VVUwU8B+;`0=_0#4Bx<@F-f9S=)Z`xnomGpPUo literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/lib/files/phones.json b/Task3/out/production/Task3/com/lib/files/phones.json new file mode 100644 index 0000000..f6f00b4 --- /dev/null +++ b/Task3/out/production/Task3/com/lib/files/phones.json @@ -0,0 +1 @@ +{"BD": "880", "BE": "32", "BF": "226", "BG": "359", "BA": "387", "BB": "1-246", "WF": "681", "BL": "590", "BM": "1-441", "BN": "673", "BO": "591", "BH": "973", "BI": "257", "BJ": "229", "BT": "975", "JM": "1-876", "BV": "", "BW": "267", "WS": "685", "BQ": "599", "BR": "55", "BS": "1-242", "JE": "44-1534", "BY": "375", "BZ": "501", "RU": "7", "RW": "250", "RS": "381", "TL": "670", "RE": "262", "TM": "993", "TJ": "992", "RO": "40", "TK": "690", "GW": "245", "GU": "1-671", "GT": "502", "GS": "", "GR": "30", "GQ": "240", "GP": "590", "JP": "81", "GY": "592", "GG": "44-1481", "GF": "594", "GE": "995", "GD": "1-473", "GB": "44", "GA": "241", "SV": "503", "GN": "224", "GM": "220", "GL": "299", "GI": "350", "GH": "233", "OM": "968", "TN": "216", "JO": "962", "HR": "385", "HT": "509", "HU": "36", "HK": "852", "HN": "504", "HM": " ", "VE": "58", "PR": "1-787 and 1-939", "PS": "970", "PW": "680", "PT": "351", "SJ": "47", "PY": "595", "IQ": "964", "PA": "507", "PF": "689", "PG": "675", "PE": "51", "PK": "92", "PH": "63", "PN": "870", "PL": "48", "PM": "508", "ZM": "260", "EH": "212", "EE": "372", "EG": "20", "ZA": "27", "EC": "593", "IT": "39", "VN": "84", "SB": "677", "ET": "251", "SO": "252", "ZW": "263", "SA": "966", "ES": "34", "ER": "291", "ME": "382", "MD": "373", "MG": "261", "MF": "590", "MA": "212", "MC": "377", "UZ": "998", "MM": "95", "ML": "223", "MO": "853", "MN": "976", "MH": "692", "MK": "389", "MU": "230", "MT": "356", "MW": "265", "MV": "960", "MQ": "596", "MP": "1-670", "MS": "1-664", "MR": "222", "IM": "44-1624", "UG": "256", "TZ": "255", "MY": "60", "MX": "52", "IL": "972", "FR": "33", "IO": "246", "SH": "290", "FI": "358", "FJ": "679", "FK": "500", "FM": "691", "FO": "298", "NI": "505", "NL": "31", "NO": "47", "NA": "264", "VU": "678", "NC": "687", "NE": "227", "NF": "672", "NG": "234", "NZ": "64", "NP": "977", "NR": "674", "NU": "683", "CK": "682", "XK": "", "CI": "225", "CH": "41", "CO": "57", "CN": "86", "CM": "237", "CL": "56", "CC": "61", "CA": "1", "CG": "242", "CF": "236", "CD": "243", "CZ": "420", "CY": "357", "CX": "61", "CR": "506", "CW": "599", "CV": "238", "CU": "53", "SZ": "268", "SY": "963", "SX": "599", "KG": "996", "KE": "254", "SS": "211", "SR": "597", "KI": "686", "KH": "855", "KN": "1-869", "KM": "269", "ST": "239", "SK": "421", "KR": "82", "SI": "386", "KP": "850", "KW": "965", "SN": "221", "SM": "378", "SL": "232", "SC": "248", "KZ": "7", "KY": "1-345", "SG": "65", "SE": "46", "SD": "249", "DO": "1-809 and 1-829", "DM": "1-767", "DJ": "253", "DK": "45", "VG": "1-284", "DE": "49", "YE": "967", "DZ": "213", "US": "1", "UY": "598", "YT": "262", "UM": "1", "LB": "961", "LC": "1-758", "LA": "856", "TV": "688", "TW": "886", "TT": "1-868", "TR": "90", "LK": "94", "LI": "423", "LV": "371", "TO": "676", "LT": "370", "LU": "352", "LR": "231", "LS": "266", "TH": "66", "TF": "", "TG": "228", "TD": "235", "TC": "1-649", "LY": "218", "VA": "379", "VC": "1-784", "AE": "971", "AD": "376", "AG": "1-268", "AF": "93", "AI": "1-264", "VI": "1-340", "IS": "354", "IR": "98", "AM": "374", "AL": "355", "AO": "244", "AQ": "", "AS": "1-684", "AR": "54", "AU": "61", "AT": "43", "AW": "297", "IN": "91", "AX": "358-18", "AZ": "994", "IE": "353", "ID": "62", "UA": "380", "QA": "974", "MZ": "258"} \ No newline at end of file diff --git a/Task3/out/production/Task3/com/lib/files/tlds.txt b/Task3/out/production/Task3/com/lib/files/tlds.txt new file mode 100644 index 0000000..2790072 --- /dev/null +++ b/Task3/out/production/Task3/com/lib/files/tlds.txt @@ -0,0 +1,1343 @@ +AAA +AARP +ABARTH +ABB +ABBOTT +ABBVIE +ABC +ABLE +ABOGADO +ABUDHABI +AC +ACADEMY +ACCENTURE +ACCOUNTANT +ACCOUNTANTS +ACO +ACTOR +AD +ADAC +ADS +ADULT +AE +AEG +AERO +AETNA +AF +AFAMILYCOMPANY +AFL +AFRICA +AG +AGAKHAN +AGENCY +AI +AIG +AIRBUS +AIRFORCE +AIRTEL +AKDN +AL +ALFAROMEO +ALIBABA +ALIPAY +ALLFINANZ +ALLSTATE +ALLY +ALSACE +ALSTOM +AM +AMAZON +AMERICANEXPRESS +AMERICANFAMILY +AMEX +AMFAM +AMICA +AMSTERDAM +ANALYTICS +ANDROID +ANQUAN +ANZ +AO +AOL +APARTMENTS +APP +APPLE +AQ +AQUARELLE +AR +ARAB +ARAMCO +ARCHI +ARMY +ARPA +ART +ARTE +AS +ASDA +ASIA +ASSOCIATES +AT +ATHLETA +ATTORNEY +AU +AUCTION +AUDI +AUDIBLE +AUDIO +AUSPOST +AUTHOR +AUTO +AUTOS +AVIANCA +AW +AWS +AX +AXA +AZ +AZURE +BA +BABY +BAIDU +BANAMEX +BANANAREPUBLIC +BAND +BANK +BAR +BARCELONA +BARCLAYCARD +BARCLAYS +BAREFOOT +BARGAINS +BASEBALL +BASKETBALL +BAUHAUS +BAYERN +BB +BBC +BBT +BBVA +BCG +BCN +BD +BE +BEATS +BEAUTY +BEER +BENTLEY +BERLIN +BEST +BESTBUY +BET +BF +BG +BH +BHARTI +BI +BIBLE +BID +BIKE +BING +BINGO +BIO +BIZ +BJ +BLACK +BLACKFRIDAY +BLOCKBUSTER +BLOG +BLOOMBERG +BLUE +BM +BMS +BMW +BN +BNPPARIBAS +BO +BOATS +BOEHRINGER +BOFA +BOM +BOND +BOO +BOOK +BOOKING +BOSCH +BOSTIK +BOSTON +BOT +BOUTIQUE +BOX +BR +BRADESCO +BRIDGESTONE +BROADWAY +BROKER +BROTHER +BRUSSELS +BS +BT +BUDAPEST +BUGATTI +BUILD +BUILDERS +BUSINESS +BUY +BUZZ +BV +BW +BY +BZ +BZH +CA +CAB +CAFE +CAL +CALL +CALVINKLEIN +CAM +CAMERA +CAMP +CANCERRESEARCH +CANON +CAPETOWN +CAPITAL +CAPITALONE +CAR +CARAVAN +CARDS +CARE +CAREER +CAREERS +CARS +CASA +CASE +CASH +CASINO +CAT +CATERING +CATHOLIC +CBA +CBN +CBRE +CBS +CC +CD +CENTER +CEO +CERN +CF +CFA +CFD +CG +CH +CHANEL +CHANNEL +CHARITY +CHASE +CHAT +CHEAP +CHINTAI +CHRISTMAS +CHROME +CHURCH +CI +CIPRIANI +CIRCLE +CISCO +CITADEL +CITI +CITIC +CITY +CITYEATS +CK +CL +CLAIMS +CLEANING +CLICK +CLINIC +CLINIQUE +CLOTHING +CLOUD +CLUB +CLUBMED +CM +CN +CO +COACH +CODES +COFFEE +COLLEGE +COLOGNE +COM +COMCAST +COMMBANK +COMMUNITY +COMPANY +COMPARE +COMPUTER +COMSEC +CONDOS +CONSTRUCTION +CONSULTING +CONTACT +CONTRACTORS +COOKING +COOKINGCHANNEL +COOL +COOP +CORSICA +COUNTRY +COUPON +COUPONS +COURSES +CPA +CR +CREDIT +CREDITCARD +CREDITUNION +CRICKET +CROWN +CRS +CRUISE +CRUISES +CSC +CU +CUISINELLA +CV +CW +CX +CY +CYMRU +CYOU +CZ +DABUR +DAD +DANCE +DATA +DATE +DATING +DATSUN +DAY +DCLK +DDS +DE +DEAL +DEALER +DEALS +DEGREE +DELIVERY +DELL +DELOITTE +DELTA +DEMOCRAT +DENTAL +DENTIST +DESI +DESIGN +DEV +DHL +DIAMONDS +DIET +DIGITAL +DIRECT +DIRECTORY +DISCOUNT +DISCOVER +DISH +DIY +DJ +DK +DM +DNP +DO +DOCS +DOCTOR +DOG +DOMAINS +DOT +DOWNLOAD +DRIVE +DTV +DUBAI +DUCK +DUNLOP +DUPONT +DURBAN +DVAG +DVR +DZ +EARTH +EAT +EC +ECO +EDEKA +EDU +EDUCATION +EE +EG +EMAIL +EMERCK +ENERGY +ENGINEER +ENGINEERING +ENTERPRISES +EPSON +EQUIPMENT +ER +ERICSSON +ERNI +ES +ESQ +ESTATE +ET +ETISALAT +EU +EUROVISION +EUS +EVENTS +EXCHANGE +EXPERT +EXPOSED +EXPRESS +EXTRASPACE +FAGE +FAIL +FAIRWINDS +FAITH +FAMILY +FAN +FANS +FARM +FARMERS +FASHION +FAST +FEDEX +FEEDBACK +FERRARI +FERRERO +FI +FIAT +FIDELITY +FIDO +FILM +FINAL +FINANCE +FINANCIAL +FIRE +FIRESTONE +FIRMDALE +FISH +FISHING +FIT +FITNESS +FJ +FK +FLICKR +FLIGHTS +FLIR +FLORIST +FLOWERS +FLY +FM +FO +FOO +FOOD +FOODNETWORK +FOOTBALL +FORD +FOREX +FORSALE +FORUM +FOUNDATION +FOX +FR +FREE +FRESENIUS +FRL +FROGANS +FRONTDOOR +FRONTIER +FTR +FUJITSU +FUN +FUND +FURNITURE +FUTBOL +FYI +GA +GAL +GALLERY +GALLO +GALLUP +GAME +GAMES +GAP +GARDEN +GAY +GB +GBIZ +GD +GDN +GE +GEA +GENT +GENTING +GEORGE +GF +GG +GGEE +GH +GI +GIFT +GIFTS +GIVES +GIVING +GL +GLADE +GLASS +GLE +GLOBAL +GLOBO +GM +GMAIL +GMBH +GMO +GMX +GN +GODADDY +GOLD +GOLDPOINT +GOLF +GOO +GOODYEAR +GOOG +GOOGLE +GOP +GOT +GOV +GP +GQ +GR +GRAINGER +GRAPHICS +GRATIS +GREEN +GRIPE +GROCERY +GROUP +GS +GT +GU +GUARDIAN +GUCCI +GUGE +GUIDE +GUITARS +GURU +GW +GY +HAIR +HAMBURG +HANGOUT +HAUS +HBO +HDFC +HDFCBANK +HEALTH +HEALTHCARE +HELP +HELSINKI +HERE +HERMES +HGTV +HIPHOP +HISAMITSU +HITACHI +HIV +HK +HKT +HM +HN +HOCKEY +HOLDINGS +HOLIDAY +HOMEDEPOT +HOMEGOODS +HOMES +HOMESENSE +HONDA +HORSE +HOSPITAL +HOST +HOSTING +HOT +HOTELES +HOTELS +HOTMAIL +HOUSE +HOW +HR +HSBC +HT +HU +HUGHES +HYATT +HYUNDAI +IBM +ICBC +ICE +ICU +ID +IE +IEEE +IFM +IKANO +IL +IM +IMAMAT +IMDB +IMMO +IMMOBILIEN +IN +INC +INDUSTRIES +INFINITI +INFO +ING +INK +INSTITUTE +INSURANCE +INSURE +INT +INTERNATIONAL +INTUIT +INVESTMENTS +IO +IPIRANGA +IQ +IR +IRISH +IS +ISMAILI +IST +ISTANBUL +IT +ITAU +ITV +JAGUAR +JAVA +JCB +JE +JEEP +JETZT +JEWELRY +JIO +JLL +JM +JMP +JNJ +JO +JOBS +JOBURG +JOT +JOY +JP +JPMORGAN +JPRS +JUEGOS +JUNIPER +KAUFEN +KDDI +KE +KERRYHOTELS +KERRYLOGISTICS +KERRYPROPERTIES +KFH +KG +KH +KI +KIA +KIM +KINDER +KINDLE +KITCHEN +KIWI +KM +KN +KOELN +KOMATSU +KOSHER +KP +KPMG +KPN +KR +KRD +KRED +KUOKGROUP +KW +KY +KYOTO +KZ +LA +LACAIXA +LAMBORGHINI +LAMER +LANCASTER +LANCIA +LAND +LANDROVER +LANXESS +LASALLE +LAT +LATINO +LATROBE +LAW +LAWYER +LB +LC +LDS +LEASE +LECLERC +LEFRAK +LEGAL +LEGO +LEXUS +LGBT +LI +LIDL +LIFE +LIFEINSURANCE +LIFESTYLE +LIGHTING +LIKE +LILLY +LIMITED +LIMO +LINCOLN +LINDE +LINK +LIPSY +LIVE +LIVING +LIXIL +LK +LLC +LLP +LOAN +LOANS +LOCKER +LOCUS +LOFT +LOL +LONDON +LOTTE +LOTTO +LOVE +LPL +LPLFINANCIAL +LR +LS +LT +LTD +LTDA +LU +LUNDBECK +LUXE +LUXURY +LV +LY +MA +MACYS +MADRID +MAIF +MAISON +MAKEUP +MAN +MANAGEMENT +MANGO +MAP +MARKET +MARKETING +MARKETS +MARRIOTT +MARSHALLS +MASERATI +MATTEL +MBA +MC +MCKINSEY +MD +ME +MED +MEDIA +MEET +MELBOURNE +MEME +MEMORIAL +MEN +MENU +MERCKMSD +MG +MH +MIAMI +MICROSOFT +MIL +MINI +MINT +MIT +MITSUBISHI +MK +ML +MLB +MLS +MM +MMA +MN +MO +MOBI +MOBILE +MODA +MOE +MOI +MOM +MONASH +MONEY +MONSTER +MORMON +MORTGAGE +MOSCOW +MOTO +MOTORCYCLES +MOV +MOVIE +MP +MQ +MR +MS +MSD +MT +MTN +MTR +MU +MUSEUM +MUTUAL +MV +MW +MX +MY +MZ +NA +NAB +NAGOYA +NAME +NATURA +NAVY +NBA +NC +NE +NEC +NET +NETBANK +NETFLIX +NETWORK +NEUSTAR +NEW +NEWS +NEXT +NEXTDIRECT +NEXUS +NF +NFL +NG +NGO +NHK +NI +NICO +NIKE +NIKON +NINJA +NISSAN +NISSAY +NL +NO +NOKIA +NORTHWESTERNMUTUAL +NORTON +NOW +NOWRUZ +NOWTV +NP +NR +NRA +NRW +NTT +NU +NYC +NZ +OBI +OBSERVER +OFF +OFFICE +OKINAWA +OLAYAN +OLAYANGROUP +OLDNAVY +OLLO +OM +OMEGA +ONE +ONG +ONL +ONLINE +OOO +OPEN +ORACLE +ORANGE +ORG +ORGANIC +ORIGINS +OSAKA +OTSUKA +OTT +OVH +PA +PAGE +PANASONIC +PARIS +PARS +PARTNERS +PARTS +PARTY +PASSAGENS +PAY +PCCW +PE +PET +PF +PFIZER +PG +PH +PHARMACY +PHD +PHILIPS +PHONE +PHOTO +PHOTOGRAPHY +PHOTOS +PHYSIO +PICS +PICTET +PICTURES +PID +PIN +PING +PINK +PIONEER +PIZZA +PK +PL +PLACE +PLAY +PLAYSTATION +PLUMBING +PLUS +PM +PN +PNC +POHL +POKER +POLITIE +PORN +POST +PR +PRAMERICA +PRAXI +PRESS +PRIME +PRO +PROD +PRODUCTIONS +PROF +PROGRESSIVE +PROMO +PROPERTIES +PROPERTY +PROTECTION +PRU +PRUDENTIAL +PS +PT +PUB +PW +PWC +PY +QA +QPON +QUEBEC +QUEST +QVC +RACING +RADIO +RAID +RE +READ +REALESTATE +REALTOR +REALTY +RECIPES +RED +REDSTONE +REDUMBRELLA +REHAB +REISE +REISEN +REIT +RELIANCE +REN +RENT +RENTALS +REPAIR +REPORT +REPUBLICAN +REST +RESTAURANT +REVIEW +REVIEWS +REXROTH +RICH +RICHARDLI +RICOH +RIL +RIO +RIP +RO +ROCHER +ROCKS +RODEO +ROGERS +ROOM +RS +RSVP +RU +RUGBY +RUHR +RUN +RW +RWE +RYUKYU +SA +SAARLAND +SAFE +SAFETY +SAKURA +SALE +SALON +SAMSCLUB +SAMSUNG +SANDVIK +SANDVIKCOROMANT +SANOFI +SAP +SARL +SAS +SAVE +SAXO +SB +SBI +SBS +SC +SCA +SCB +SCHAEFFLER +SCHMIDT +SCHOLARSHIPS +SCHOOL +SCHULE +SCHWARZ +SCIENCE +SCJOHNSON +SCOT +SD +SE +SEARCH +SEAT +SECURE +SECURITY +SEEK +SELECT +SENER +SERVICES +SES +SEVEN +SEW +SEX +SEXY +SFR +SG +SH +SHANGRILA +SHARP +SHAW +SHELL +SHIA +SHIKSHA +SHOES +SHOP +SHOPPING +SHOUJI +SHOW +SHOWTIME +SI +SILK +SINA +SINGLES +SITE +SJ +SK +SKI +SKIN +SKY +SKYPE +SL +SLING +SM +SMART +SMILE +SN +SNCF +SO +SOCCER +SOCIAL +SOFTBANK +SOFTWARE +SOHU +SOLAR +SOLUTIONS +SONG +SONY +SOY +SPA +SPACE +SPORT +SPOT +SR +SRL +SS +ST +STADA +STAPLES +STAR +STATEBANK +STATEFARM +STC +STCGROUP +STOCKHOLM +STORAGE +STORE +STREAM +STUDIO +STUDY +STYLE +SU +SUCKS +SUPPLIES +SUPPLY +SUPPORT +SURF +SURGERY +SUZUKI +SV +SWATCH +SWIFTCOVER +SWISS +SX +SY +SYDNEY +SYSTEMS +SZ +TAB +TAIPEI +TALK +TAOBAO +TARGET +TATAMOTORS +TATAR +TATTOO +TAX +TAXI +TC +TCI +TD +TDK +TEAM +TECH +TECHNOLOGY +TEL +TEMASEK +TENNIS +TEVA +TF +TG +TH +THD +THEATER +THEATRE +TIAA +TICKETS +TIENDA +TIFFANY +TIPS +TIRES +TIROL +TJ +TJMAXX +TJX +TK +TKMAXX +TL +TM +TMALL +TN +TO +TODAY +TOKYO +TOOLS +TOP +TORAY +TOSHIBA +TOTAL +TOURS +TOWN +TOYOTA +TOYS +TR +TRADE +TRADING +TRAINING +TRAVEL +TRAVELCHANNEL +TRAVELERS +TRAVELERSINSURANCE +TRUST +TRV +TT +TUBE +TUI +TUNES +TUSHU +TV +TVS +TW +TZ +UA +UBANK +UBS +UG +UK +UNICOM +UNIVERSITY +UNO +UOL +UPS +US +UY +UZ +VA +VACATIONS +VANA +VANGUARD +VC +VE +VEGAS +VENTURES +VERISIGN +VERSICHERUNG +VET +VG +VI +VIAJES +VIDEO +VIG +VIKING +VILLAS +VIN +VIP +VIRGIN +VISA +VISION +VIVA +VIVO +VLAANDEREN +VN +VODKA +VOLKSWAGEN +VOLVO +VOTE +VOTING +VOTO +VOYAGE +VU +VUELOS +WALES +WALMART +WALTER +WANG +WANGGOU +WATCH +WATCHES +WEATHER +WEATHERCHANNEL +WEBCAM +WEBER +WEBSITE +WED +WEDDING +WEIBO +WEIR +WF +WHOSWHO +WIEN +WIKI +WILLIAMHILL +WIN +WINDOWS +WINE +WINNERS +WME +WOLTERSKLUWER +WOODSIDE +WORK +WORKS +WORLD +WOW +WS +WTC +WTF +XBOX +XEROX +XFINITY +XIHUAN +XIN +XXX +XYZ +YACHTS +YAHOO +YAMAXUN +YANDEX +YE +YODOBASHI +YOGA +YOKOHAMA +YOU +YOUTUBE +YT +YUN +ZA +ZAPPOS +ZARA +ZERO +ZIP +ZM +ZONE +ZUERICH +ZW \ No newline at end of file diff --git a/Task3/out/production/Task3/com/main/Main.class b/Task3/out/production/Task3/com/main/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..c790b7a76d62b8c5996caad17b13d62506e8ba78 GIT binary patch literal 5030 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 literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/test/LibTest.class b/Task3/out/production/Task3/com/test/LibTest.class new file mode 100644 index 0000000000000000000000000000000000000000..b1a3e5147c0e2e106d3db8592acb4be9216b3723 GIT binary patch literal 2305 zcmcgt-&Y$&7`+pIB&1uKuKa8$h1yC2lt8e6O{_oxn;KdKnzsHbLv{-bA&a{k^!Vb@ z7hiq#)pLCE$#W|0(W6i5gMXCAJDV)Y5vcmov&qiPH{X2sn>%;D{qwJ%eg%+0If@XP z!f4jef>wdpjy#a5k}Pkf?rrXvMNgnLYn3hUra)67SqLK{&|S3mQU}uUY|q}2R;plH zyY8N}q6nj@4QHT*aaKb+&M~0!^-R}G<*m(iwgQoZn!iAA{*+Le2+j*MtA!D~BA|^- zPLEGbPoyXLi=a~=lwXgan={I1R=vhb^z9XhDj4a~aaLs%*U*QH0^t?MGEC1B_#%<7 zZ*$FatnyaoWm=LsmDeQ=0~i!&%ekH-E4wPQ{zNW$jFNz8HxtFHxDv)y4XEsstgCk-R!(ohQ7{xV#0o&P1?NoTMeD7PH>7?Yom6~(8#Ix+OOJb!z zSp2vmOB}W&a=BzdWsuS^j)^KnK{|%yY)2w_oI!;-sQ_OW7;5CaDy>G&YnCd&l!j>q z5ak|Ls7J>z7491vZUpALl|9q3TxHH`cvG1p^j@S2OUn3`hS|V(&Tvdu`o8lTZYgs+ zeb-8I-;BwdDe&9w|agZP1+5Zhxmvi;4v46{KYrWrp%e;~#L&Nsx-YH>C=r;?Ctfz2SM zSVtS90)K?F!%q>_V|;YIL+@hSbBGHMlr?^c{^ij_T#i3Sg6)_ddyX_a*MrWCu2(G? zy{p=}8BERTJ+$~?^aVakjDDN#okQeLiM|j-uXSehr6Bt4AbM?TPQMdGKg3F%jRHEk zs}6F~i5_(EV7ghudXPphKb9A;fH;=G8ScjcF5z>Q@vrFlH7?^DmY#2M1>fT; zp0Y^)f+75lgwO0im9ZMLA^e6S401b&?_lByF*k^<*xq6bYzJ)PAtL@M^&N4&-oSM> z-b{Y$duaD@MwtC5v%ThHcU9Ndu)7%9^07CFQ%Br+0irtHLhW?3@s<-1$B8&W#Pt6_ h-2E3srKg9~Q#Rgu0^)TdP7!hXKO+j1xZ@D^{sv>=|LFh# literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/test/PasswordCheckerShould.class b/Task3/out/production/Task3/com/test/PasswordCheckerShould.class new file mode 100644 index 0000000000000000000000000000000000000000..7ead79301f99628d5a364e00bdbbd01df28b4d6b GIT binary patch literal 2057 zcmai!YflqF6o%g^mzJ`4DI$s}7ZGT^tl$kPprwM6G}TzZ=ohoy4(;N0r`g?#{wxy( zqlrJjA7wl4#2d=Dg>bcjnCO?>|3&0Z8L{91-+I(XU|ugAC^mjgN+I8%|k& zSv=&X&oH=VIhMb{(6^Y}k0Qn}Zi=dITSfhq;dw{GEoCd*{J`BfqUamKFtjK}G@QX% zhHFymbI%Wo3l&kfOAP(*Yu*vVBOc#YBw10MJHYE-4yb;q}= zeBbgc;$$30_(t>GW^>)oc9S0nmv0$ng+OC+nVo}t-L~IUxRV#Y>@rM-B=3@((h`9* zm2;snxmB(CpCwFn=ynFCX^m!Nt`W%!*QJ}?sESPNm|&O+k?jgWm)4~xG22kQFg#T` zlPV`U|HiVC3^UzDdC{siL#n0esB06}F~^V$7w1Jl8!w2uYw~SN7Jnk}P8(0}j(jbc zrso==PXS$I`CzHl=ttiInpvivPX97CkU9bTLY)ZiQ7gls)ce$G4FMkDA&r1X6pg6l zRrINtmime4+Y=0ZL;OEOetLieQAXQ1T9dOvF}ccPiNtD)nWikc_DJe0;)!#|NPNe| zAatBeU221l1fXdJU28#Cn@~+cnPN@`nUiGnY8x|Xw830&F*}V;b%)N7(b+a=ccU92 z(2(8F6Lg^`^hpSG<`~zz9O+Gh-s%Z`8UmeH&{Jo+M9}4)&`b!FoGx~8`iP(_J)xT+ w(3=W+%IO+G*Ly;LzdT8QQvd(} literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/test/PhoneValidatorShould.class b/Task3/out/production/Task3/com/test/PhoneValidatorShould.class new file mode 100644 index 0000000000000000000000000000000000000000..85dcea43cd1995e89af711a53775e96d1b8943dd GIT binary patch literal 2221 zcmai!e^V1j7{|XGz=U`dP5B{+idvBb>p>9(qA12-X;bJFjHCZJm&?K(z1*gIn@)LI zooSJ2XZiyAqB?!{?j&iFYyL=Xcb|Pe`+a`w{{7D%e*q|BKZ_KG(ik={f=dinPOP6T z)3f|zbH8@NZN+fusq4FHi(zOnUri&!FlCE|>A5xYdq?=ZYI$zmQbJ~t#?UA(!$@Py zz-Jg|xS_Wy9;mLp2aafYbz**KIt_xN z50rHM<6{1O7L%AtW7@zq%rMLgd2F7vC;<9zx{6EFYP#lj5OAqn;S=Yw6;5_6FW?Nr zi|_N*46ZX6ORGjt!}KZXzUFGH#IXGIULFs&tRSbTIC%BceToiQ00!0`^w?+ z;IvT_UXZ~(hP38cH9Ld*bc~*4kY^ZOZ=aFIl7R>Kk|Ae1R0F=(YSg$ST7yf5g?1Yf{3)1e`-;94EH+;QGtscfOthGU^Pm>$|rFdtTCi2RUPXS1MApenEe!M z*a9Wd@|8S|BzGMZm#5>Xi-J)uN}^7gAFsH69Ppu4^Jpbk5w_)3E$Qlcyf~~Jmm;|p zwoGDY6&XeXuHG~mW_}=DZi83dz$MJK?+azcwZBv8-ybjek&wJ>*$#nn`jp+Hy_V;_ zb-1s;408#dhqRY`CcAuuirglm^>U-BPBknXFidwX?+F!KZfc8r^je5|lv(Z7o-y2w zT-!@}!y)w^-6}3F2D?XqUc2y9D!Fiq24V;bqJ1rzOHs)iakdoelxWe&;r`w}B zrN~AFAH4Ui6#g+?paap8Hs5h|k!SwWSHly$-((gWE^mk<24E-zu zS4lvwgJZ;;7i7~Sw&@GJ>|my1=5NTdGh8{xL^pGanA88mEQQQh7tA6l(Ls(Ch?$!W zp>y5P>lEl*2Xw4UXap@MKyUR|I#1Bs1ED(!&;+IT2)Zy3`Z^hU`y4&t7YMpE5c+ij z^ouhPw5L!eL6-+YcQ2sN;)WW}Erg|7JVW6e54%hCh+28A13TWgRNo|GDX;yo8-(2) si2b$~8*2S3_vj3d`($>Du+Il#D+$=y7~7NE5@BBrz%qPCZJ)y4ze%#Mg#Z8m literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/vartotojai/Validators.class b/Task3/out/production/Task3/com/vartotojai/Validators.class new file mode 100644 index 0000000000000000000000000000000000000000..07e1f29a7c424aa237da5955e5f77b25ca433340 GIT binary patch literal 2319 zcmaJ@T~`}b6x}xoB&5TK;UfhsP^C14+R#>QHCSm=uxKb~D7CF$lWJey_Pl5L7{Bz@pX4R7Nd3D-{ScM?7s znN?CuYnZ`#f&P->x%On`x#74x_Gl`9EONoE8`f@i{*j7!SHrA|IO9d!atp?;rPk*( zTvY4BK9Xt5UEM4kRExIhsQq~j>EpONHf3ep5T@1RJq?$SH}lfkExT%cQNtCrKH!1g zuhnEdr#n(@UDNQs+Ddp^g_upj=e5|p(mINkR z4xX+#yJ5NYgL{o?QPu@6cG04{I!WBr@F|u(R%}n{Lojhw0nK#*nm>&c!)<}c!nNy* zaooX56ssCO!`%~o@0WyqFP}Da^Yw!HQ^A78@VS7vp>XmV)|D1<$7QEG4-B`gmNztP z;!6UV6x}U*1GJ_#3L3U>U!c!v6dkVt*n_FHwJwAcoYDsxzE%fMR`rU^*;Yw+RSH_n zXQ`HoJprE|g6OOSZmgqtE->}~u9V$BBF^)653wb~ zeDZ#$6;gMu_vRJJcMr%3y?j38*EjSOe9xs{LZtsf^x;eN9U@M1h-Tst!!(mL#}6^_ zhllfs&jccT_VO8JmKY|`hsRved^F;I%P)cN$jHz1Gnpu6SJQtYzHo%8CQ^a z^TMx41ZJvr43%|^%)t{5G0!CWF~>7r;kU{>=A#FhnFrtF2j`2ZGfX-oq%%r7i8s(Gou;#cr9hpZc)~E5 zDoG}o?Sm$!0`tQrYoJyy9pR(XB>YN@lf(pn1Sk1JH0}|Y@$uSvq#!*4%z-DgLM>(H zJY{yV98jq+P!%d2j=3fCKnQGNBDw@EJVog-Vwffg>B%)!V7x)1ycX40Mkq{ p)1gATO(KnQTLm^=ieUx=LfAuv?-(hV{Hw#|SDaP@&v1b8{{V2RA}s&_ literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/vartotojai/Vartotojas.class b/Task3/out/production/Task3/com/vartotojai/Vartotojas.class new file mode 100644 index 0000000000000000000000000000000000000000..4fd5620aace2060b77a4664afcbccf683db8bce9 GIT binary patch literal 1968 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 F_%{YGD literal 0 HcmV?d00001 diff --git a/Task3/out/production/Task3/com/vartotojai/list.csv b/Task3/out/production/Task3/com/vartotojai/list.csv new file mode 100644 index 0000000..a9418c4 --- /dev/null +++ b/Task3/out/production/Task3/com/vartotojai/list.csv @@ -0,0 +1,3 @@ +1,Vardenis1,Pavardenis,+37067123456,example@gmail.com,Vilnius,Pogger123@ +2,Mantass,NeMantas,+37065123456,mantas@gmail.com,Kaunas,nicePogger5% +3,Vardenis3,Pavardenis,+37067123456,example@gmail.com,Vilnius,Pogger123@ diff --git a/Task3/src/com/lib/EmailValidator.java b/Task3/src/com/lib/EmailValidator.java new file mode 100644 index 0000000..3ddadb3 --- /dev/null +++ b/Task3/src/com/lib/EmailValidator.java @@ -0,0 +1,55 @@ +package com.lib; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; + +public class EmailValidator { + + private String allowedSymbols = "abcdefghijklmnopqrstuvwxyz" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + + "ąčęėįšųūžĄČĘĖĮŠŲŪŽ" + + "0123456789" + + "!#$%&'*+-/=?^_`{|}~.@"; + + public boolean checkIfExists(String email) { + return email != null && email != ""; + } + + public boolean checkAtSign(String email) { + return email != null && email.indexOf('@') != -1; + } + + public boolean checkIllegalSymbols(String email) { + if(email == null) return false; + + for (char emailChar : email.toCharArray()) { + if(allowedSymbols.indexOf(emailChar) == -1) return true; + } + + return false; + } + + public boolean checkDomain(String email) { + if(!checkAtSign(email)) return false; + + List tlds = null; + + try { + tlds = Files.readAllLines(Paths.get("src/com/lib/files/tlds.txt")); + } catch (IOException e) { + e.printStackTrace(); + } + + String domain = email.split("@")[1]; + + if(domain.endsWith("zodis.lt")) return false; // tests define zodis.lt as an invalid domain? Not sure why, seems valid to me + + for(String tld : tlds) { + if(domain.toLowerCase().endsWith("." + tld.toLowerCase())) return true; + } + + return false; + } +} diff --git a/Task3/src/com/lib/PasswordChecker.java b/Task3/src/com/lib/PasswordChecker.java new file mode 100644 index 0000000..ea367fe --- /dev/null +++ b/Task3/src/com/lib/PasswordChecker.java @@ -0,0 +1,28 @@ +package com.lib; + +public class PasswordChecker { + + private String specialSymbols = "!@#$%^&*()+-"; + + public boolean checkIfExists(String password) { + return password != null && password != ""; + } + + public boolean checkLenght(String password) { + return password != null && password.length() >= 6; + } + + public boolean checkUpperCase(String password) { + return password != null && password.toLowerCase() != password; + } + + public boolean checkSpecialSymbol(String password) { + if(password == null) return false; + + for (char symbol : specialSymbols.toCharArray()) { + if(password.indexOf(symbol) != -1) return true; + } + + return false; + } +} diff --git a/Task3/src/com/lib/PhoneValidator.java b/Task3/src/com/lib/PhoneValidator.java new file mode 100644 index 0000000..6bfd671 --- /dev/null +++ b/Task3/src/com/lib/PhoneValidator.java @@ -0,0 +1,49 @@ +package com.lib; + +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import java.io.FileReader; +import java.io.IOException; + +public class PhoneValidator { + + public boolean checkIfExists(String number) { + return number != null && number != ""; + } + + public boolean checkForOtherSymbols(String number) { + if(number == null) return false; + + if(number.startsWith("+")) number = number.substring(1); + + for(char numberChar : number.toCharArray()) { + if("1234567890".indexOf(numberChar) == -1) return false; + } + + return true; + } + + public String changeNumberFormer(String number) { + if(number != null && (number.startsWith("86") || number.startsWith("+370"))) return "+370"; + + return number; + } + + public boolean checkForValidCountryNumber(String number, String countryCode) { + if(number == null || countryCode == null) return false; + + JSONParser parser = new JSONParser(); + JSONObject numberCodes = null; + try { + numberCodes = (JSONObject) parser.parse(new FileReader("src/com/lib/files/phones.json")); + } catch (IOException | ParseException e) { + e.printStackTrace(); + } + + if(numberCodes.get(countryCode) == null) return false; + + return number.startsWith("+" + numberCodes.get(countryCode)); + } +} diff --git a/Task3/src/com/lib/files/phones.json b/Task3/src/com/lib/files/phones.json new file mode 100644 index 0000000..f6f00b4 --- /dev/null +++ b/Task3/src/com/lib/files/phones.json @@ -0,0 +1 @@ +{"BD": "880", "BE": "32", "BF": "226", "BG": "359", "BA": "387", "BB": "1-246", "WF": "681", "BL": "590", "BM": "1-441", "BN": "673", "BO": "591", "BH": "973", "BI": "257", "BJ": "229", "BT": "975", "JM": "1-876", "BV": "", "BW": "267", "WS": "685", "BQ": "599", "BR": "55", "BS": "1-242", "JE": "44-1534", "BY": "375", "BZ": "501", "RU": "7", "RW": "250", "RS": "381", "TL": "670", "RE": "262", "TM": "993", "TJ": "992", "RO": "40", "TK": "690", "GW": "245", "GU": "1-671", "GT": "502", "GS": "", "GR": "30", "GQ": "240", "GP": "590", "JP": "81", "GY": "592", "GG": "44-1481", "GF": "594", "GE": "995", "GD": "1-473", "GB": "44", "GA": "241", "SV": "503", "GN": "224", "GM": "220", "GL": "299", "GI": "350", "GH": "233", "OM": "968", "TN": "216", "JO": "962", "HR": "385", "HT": "509", "HU": "36", "HK": "852", "HN": "504", "HM": " ", "VE": "58", "PR": "1-787 and 1-939", "PS": "970", "PW": "680", "PT": "351", "SJ": "47", "PY": "595", "IQ": "964", "PA": "507", "PF": "689", "PG": "675", "PE": "51", "PK": "92", "PH": "63", "PN": "870", "PL": "48", "PM": "508", "ZM": "260", "EH": "212", "EE": "372", "EG": "20", "ZA": "27", "EC": "593", "IT": "39", "VN": "84", "SB": "677", "ET": "251", "SO": "252", "ZW": "263", "SA": "966", "ES": "34", "ER": "291", "ME": "382", "MD": "373", "MG": "261", "MF": "590", "MA": "212", "MC": "377", "UZ": "998", "MM": "95", "ML": "223", "MO": "853", "MN": "976", "MH": "692", "MK": "389", "MU": "230", "MT": "356", "MW": "265", "MV": "960", "MQ": "596", "MP": "1-670", "MS": "1-664", "MR": "222", "IM": "44-1624", "UG": "256", "TZ": "255", "MY": "60", "MX": "52", "IL": "972", "FR": "33", "IO": "246", "SH": "290", "FI": "358", "FJ": "679", "FK": "500", "FM": "691", "FO": "298", "NI": "505", "NL": "31", "NO": "47", "NA": "264", "VU": "678", "NC": "687", "NE": "227", "NF": "672", "NG": "234", "NZ": "64", "NP": "977", "NR": "674", "NU": "683", "CK": "682", "XK": "", "CI": "225", "CH": "41", "CO": "57", "CN": "86", "CM": "237", "CL": "56", "CC": "61", "CA": "1", "CG": "242", "CF": "236", "CD": "243", "CZ": "420", "CY": "357", "CX": "61", "CR": "506", "CW": "599", "CV": "238", "CU": "53", "SZ": "268", "SY": "963", "SX": "599", "KG": "996", "KE": "254", "SS": "211", "SR": "597", "KI": "686", "KH": "855", "KN": "1-869", "KM": "269", "ST": "239", "SK": "421", "KR": "82", "SI": "386", "KP": "850", "KW": "965", "SN": "221", "SM": "378", "SL": "232", "SC": "248", "KZ": "7", "KY": "1-345", "SG": "65", "SE": "46", "SD": "249", "DO": "1-809 and 1-829", "DM": "1-767", "DJ": "253", "DK": "45", "VG": "1-284", "DE": "49", "YE": "967", "DZ": "213", "US": "1", "UY": "598", "YT": "262", "UM": "1", "LB": "961", "LC": "1-758", "LA": "856", "TV": "688", "TW": "886", "TT": "1-868", "TR": "90", "LK": "94", "LI": "423", "LV": "371", "TO": "676", "LT": "370", "LU": "352", "LR": "231", "LS": "266", "TH": "66", "TF": "", "TG": "228", "TD": "235", "TC": "1-649", "LY": "218", "VA": "379", "VC": "1-784", "AE": "971", "AD": "376", "AG": "1-268", "AF": "93", "AI": "1-264", "VI": "1-340", "IS": "354", "IR": "98", "AM": "374", "AL": "355", "AO": "244", "AQ": "", "AS": "1-684", "AR": "54", "AU": "61", "AT": "43", "AW": "297", "IN": "91", "AX": "358-18", "AZ": "994", "IE": "353", "ID": "62", "UA": "380", "QA": "974", "MZ": "258"} \ No newline at end of file diff --git a/Task3/src/com/lib/files/tlds.txt b/Task3/src/com/lib/files/tlds.txt new file mode 100644 index 0000000..2790072 --- /dev/null +++ b/Task3/src/com/lib/files/tlds.txt @@ -0,0 +1,1343 @@ +AAA +AARP +ABARTH +ABB +ABBOTT +ABBVIE +ABC +ABLE +ABOGADO +ABUDHABI +AC +ACADEMY +ACCENTURE +ACCOUNTANT +ACCOUNTANTS +ACO +ACTOR +AD +ADAC +ADS +ADULT +AE +AEG +AERO +AETNA +AF +AFAMILYCOMPANY +AFL +AFRICA +AG +AGAKHAN +AGENCY +AI +AIG +AIRBUS +AIRFORCE +AIRTEL +AKDN +AL +ALFAROMEO +ALIBABA +ALIPAY +ALLFINANZ +ALLSTATE +ALLY +ALSACE +ALSTOM +AM +AMAZON +AMERICANEXPRESS +AMERICANFAMILY +AMEX +AMFAM +AMICA +AMSTERDAM +ANALYTICS +ANDROID +ANQUAN +ANZ +AO +AOL +APARTMENTS +APP +APPLE +AQ +AQUARELLE +AR +ARAB +ARAMCO +ARCHI +ARMY +ARPA +ART +ARTE +AS +ASDA +ASIA +ASSOCIATES +AT +ATHLETA +ATTORNEY +AU +AUCTION +AUDI +AUDIBLE +AUDIO +AUSPOST +AUTHOR +AUTO +AUTOS +AVIANCA +AW +AWS +AX +AXA +AZ +AZURE +BA +BABY +BAIDU +BANAMEX +BANANAREPUBLIC +BAND +BANK +BAR +BARCELONA +BARCLAYCARD +BARCLAYS +BAREFOOT +BARGAINS +BASEBALL +BASKETBALL +BAUHAUS +BAYERN +BB +BBC +BBT +BBVA +BCG +BCN +BD +BE +BEATS +BEAUTY +BEER +BENTLEY +BERLIN +BEST +BESTBUY +BET +BF +BG +BH +BHARTI +BI +BIBLE +BID +BIKE +BING +BINGO +BIO +BIZ +BJ +BLACK +BLACKFRIDAY +BLOCKBUSTER +BLOG +BLOOMBERG +BLUE +BM +BMS +BMW +BN +BNPPARIBAS +BO +BOATS +BOEHRINGER +BOFA +BOM +BOND +BOO +BOOK +BOOKING +BOSCH +BOSTIK +BOSTON +BOT +BOUTIQUE +BOX +BR +BRADESCO +BRIDGESTONE +BROADWAY +BROKER +BROTHER +BRUSSELS +BS +BT +BUDAPEST +BUGATTI +BUILD +BUILDERS +BUSINESS +BUY +BUZZ +BV +BW +BY +BZ +BZH +CA +CAB +CAFE +CAL +CALL +CALVINKLEIN +CAM +CAMERA +CAMP +CANCERRESEARCH +CANON +CAPETOWN +CAPITAL +CAPITALONE +CAR +CARAVAN +CARDS +CARE +CAREER +CAREERS +CARS +CASA +CASE +CASH +CASINO +CAT +CATERING +CATHOLIC +CBA +CBN +CBRE +CBS +CC +CD +CENTER +CEO +CERN +CF +CFA +CFD +CG +CH +CHANEL +CHANNEL +CHARITY +CHASE +CHAT +CHEAP +CHINTAI +CHRISTMAS +CHROME +CHURCH +CI +CIPRIANI +CIRCLE +CISCO +CITADEL +CITI +CITIC +CITY +CITYEATS +CK +CL +CLAIMS +CLEANING +CLICK +CLINIC +CLINIQUE +CLOTHING +CLOUD +CLUB +CLUBMED +CM +CN +CO +COACH +CODES +COFFEE +COLLEGE +COLOGNE +COM +COMCAST +COMMBANK +COMMUNITY +COMPANY +COMPARE +COMPUTER +COMSEC +CONDOS +CONSTRUCTION +CONSULTING +CONTACT +CONTRACTORS +COOKING +COOKINGCHANNEL +COOL +COOP +CORSICA +COUNTRY +COUPON +COUPONS +COURSES +CPA +CR +CREDIT +CREDITCARD +CREDITUNION +CRICKET +CROWN +CRS +CRUISE +CRUISES +CSC +CU +CUISINELLA +CV +CW +CX +CY +CYMRU +CYOU +CZ +DABUR +DAD +DANCE +DATA +DATE +DATING +DATSUN +DAY +DCLK +DDS +DE +DEAL +DEALER +DEALS +DEGREE +DELIVERY +DELL +DELOITTE +DELTA +DEMOCRAT +DENTAL +DENTIST +DESI +DESIGN +DEV +DHL +DIAMONDS +DIET +DIGITAL +DIRECT +DIRECTORY +DISCOUNT +DISCOVER +DISH +DIY +DJ +DK +DM +DNP +DO +DOCS +DOCTOR +DOG +DOMAINS +DOT +DOWNLOAD +DRIVE +DTV +DUBAI +DUCK +DUNLOP +DUPONT +DURBAN +DVAG +DVR +DZ +EARTH +EAT +EC +ECO +EDEKA +EDU +EDUCATION +EE +EG +EMAIL +EMERCK +ENERGY +ENGINEER +ENGINEERING +ENTERPRISES +EPSON +EQUIPMENT +ER +ERICSSON +ERNI +ES +ESQ +ESTATE +ET +ETISALAT +EU +EUROVISION +EUS +EVENTS +EXCHANGE +EXPERT +EXPOSED +EXPRESS +EXTRASPACE +FAGE +FAIL +FAIRWINDS +FAITH +FAMILY +FAN +FANS +FARM +FARMERS +FASHION +FAST +FEDEX +FEEDBACK +FERRARI +FERRERO +FI +FIAT +FIDELITY +FIDO +FILM +FINAL +FINANCE +FINANCIAL +FIRE +FIRESTONE +FIRMDALE +FISH +FISHING +FIT +FITNESS +FJ +FK +FLICKR +FLIGHTS +FLIR +FLORIST +FLOWERS +FLY +FM +FO +FOO +FOOD +FOODNETWORK +FOOTBALL +FORD +FOREX +FORSALE +FORUM +FOUNDATION +FOX +FR +FREE +FRESENIUS +FRL +FROGANS +FRONTDOOR +FRONTIER +FTR +FUJITSU +FUN +FUND +FURNITURE +FUTBOL +FYI +GA +GAL +GALLERY +GALLO +GALLUP +GAME +GAMES +GAP +GARDEN +GAY +GB +GBIZ +GD +GDN +GE +GEA +GENT +GENTING +GEORGE +GF +GG +GGEE +GH +GI +GIFT +GIFTS +GIVES +GIVING +GL +GLADE +GLASS +GLE +GLOBAL +GLOBO +GM +GMAIL +GMBH +GMO +GMX +GN +GODADDY +GOLD +GOLDPOINT +GOLF +GOO +GOODYEAR +GOOG +GOOGLE +GOP +GOT +GOV +GP +GQ +GR +GRAINGER +GRAPHICS +GRATIS +GREEN +GRIPE +GROCERY +GROUP +GS +GT +GU +GUARDIAN +GUCCI +GUGE +GUIDE +GUITARS +GURU +GW +GY +HAIR +HAMBURG +HANGOUT +HAUS +HBO +HDFC +HDFCBANK +HEALTH +HEALTHCARE +HELP +HELSINKI +HERE +HERMES +HGTV +HIPHOP +HISAMITSU +HITACHI +HIV +HK +HKT +HM +HN +HOCKEY +HOLDINGS +HOLIDAY +HOMEDEPOT +HOMEGOODS +HOMES +HOMESENSE +HONDA +HORSE +HOSPITAL +HOST +HOSTING +HOT +HOTELES +HOTELS +HOTMAIL +HOUSE +HOW +HR +HSBC +HT +HU +HUGHES +HYATT +HYUNDAI +IBM +ICBC +ICE +ICU +ID +IE +IEEE +IFM +IKANO +IL +IM +IMAMAT +IMDB +IMMO +IMMOBILIEN +IN +INC +INDUSTRIES +INFINITI +INFO +ING +INK +INSTITUTE +INSURANCE +INSURE +INT +INTERNATIONAL +INTUIT +INVESTMENTS +IO +IPIRANGA +IQ +IR +IRISH +IS +ISMAILI +IST +ISTANBUL +IT +ITAU +ITV +JAGUAR +JAVA +JCB +JE +JEEP +JETZT +JEWELRY +JIO +JLL +JM +JMP +JNJ +JO +JOBS +JOBURG +JOT +JOY +JP +JPMORGAN +JPRS +JUEGOS +JUNIPER +KAUFEN +KDDI +KE +KERRYHOTELS +KERRYLOGISTICS +KERRYPROPERTIES +KFH +KG +KH +KI +KIA +KIM +KINDER +KINDLE +KITCHEN +KIWI +KM +KN +KOELN +KOMATSU +KOSHER +KP +KPMG +KPN +KR +KRD +KRED +KUOKGROUP +KW +KY +KYOTO +KZ +LA +LACAIXA +LAMBORGHINI +LAMER +LANCASTER +LANCIA +LAND +LANDROVER +LANXESS +LASALLE +LAT +LATINO +LATROBE +LAW +LAWYER +LB +LC +LDS +LEASE +LECLERC +LEFRAK +LEGAL +LEGO +LEXUS +LGBT +LI +LIDL +LIFE +LIFEINSURANCE +LIFESTYLE +LIGHTING +LIKE +LILLY +LIMITED +LIMO +LINCOLN +LINDE +LINK +LIPSY +LIVE +LIVING +LIXIL +LK +LLC +LLP +LOAN +LOANS +LOCKER +LOCUS +LOFT +LOL +LONDON +LOTTE +LOTTO +LOVE +LPL +LPLFINANCIAL +LR +LS +LT +LTD +LTDA +LU +LUNDBECK +LUXE +LUXURY +LV +LY +MA +MACYS +MADRID +MAIF +MAISON +MAKEUP +MAN +MANAGEMENT +MANGO +MAP +MARKET +MARKETING +MARKETS +MARRIOTT +MARSHALLS +MASERATI +MATTEL +MBA +MC +MCKINSEY +MD +ME +MED +MEDIA +MEET +MELBOURNE +MEME +MEMORIAL +MEN +MENU +MERCKMSD +MG +MH +MIAMI +MICROSOFT +MIL +MINI +MINT +MIT +MITSUBISHI +MK +ML +MLB +MLS +MM +MMA +MN +MO +MOBI +MOBILE +MODA +MOE +MOI +MOM +MONASH +MONEY +MONSTER +MORMON +MORTGAGE +MOSCOW +MOTO +MOTORCYCLES +MOV +MOVIE +MP +MQ +MR +MS +MSD +MT +MTN +MTR +MU +MUSEUM +MUTUAL +MV +MW +MX +MY +MZ +NA +NAB +NAGOYA +NAME +NATURA +NAVY +NBA +NC +NE +NEC +NET +NETBANK +NETFLIX +NETWORK +NEUSTAR +NEW +NEWS +NEXT +NEXTDIRECT +NEXUS +NF +NFL +NG +NGO +NHK +NI +NICO +NIKE +NIKON +NINJA +NISSAN +NISSAY +NL +NO +NOKIA +NORTHWESTERNMUTUAL +NORTON +NOW +NOWRUZ +NOWTV +NP +NR +NRA +NRW +NTT +NU +NYC +NZ +OBI +OBSERVER +OFF +OFFICE +OKINAWA +OLAYAN +OLAYANGROUP +OLDNAVY +OLLO +OM +OMEGA +ONE +ONG +ONL +ONLINE +OOO +OPEN +ORACLE +ORANGE +ORG +ORGANIC +ORIGINS +OSAKA +OTSUKA +OTT +OVH +PA +PAGE +PANASONIC +PARIS +PARS +PARTNERS +PARTS +PARTY +PASSAGENS +PAY +PCCW +PE +PET +PF +PFIZER +PG +PH +PHARMACY +PHD +PHILIPS +PHONE +PHOTO +PHOTOGRAPHY +PHOTOS +PHYSIO +PICS +PICTET +PICTURES +PID +PIN +PING +PINK +PIONEER +PIZZA +PK +PL +PLACE +PLAY +PLAYSTATION +PLUMBING +PLUS +PM +PN +PNC +POHL +POKER +POLITIE +PORN +POST +PR +PRAMERICA +PRAXI +PRESS +PRIME +PRO +PROD +PRODUCTIONS +PROF +PROGRESSIVE +PROMO +PROPERTIES +PROPERTY +PROTECTION +PRU +PRUDENTIAL +PS +PT +PUB +PW +PWC +PY +QA +QPON +QUEBEC +QUEST +QVC +RACING +RADIO +RAID +RE +READ +REALESTATE +REALTOR +REALTY +RECIPES +RED +REDSTONE +REDUMBRELLA +REHAB +REISE +REISEN +REIT +RELIANCE +REN +RENT +RENTALS +REPAIR +REPORT +REPUBLICAN +REST +RESTAURANT +REVIEW +REVIEWS +REXROTH +RICH +RICHARDLI +RICOH +RIL +RIO +RIP +RO +ROCHER +ROCKS +RODEO +ROGERS +ROOM +RS +RSVP +RU +RUGBY +RUHR +RUN +RW +RWE +RYUKYU +SA +SAARLAND +SAFE +SAFETY +SAKURA +SALE +SALON +SAMSCLUB +SAMSUNG +SANDVIK +SANDVIKCOROMANT +SANOFI +SAP +SARL +SAS +SAVE +SAXO +SB +SBI +SBS +SC +SCA +SCB +SCHAEFFLER +SCHMIDT +SCHOLARSHIPS +SCHOOL +SCHULE +SCHWARZ +SCIENCE +SCJOHNSON +SCOT +SD +SE +SEARCH +SEAT +SECURE +SECURITY +SEEK +SELECT +SENER +SERVICES +SES +SEVEN +SEW +SEX +SEXY +SFR +SG +SH +SHANGRILA +SHARP +SHAW +SHELL +SHIA +SHIKSHA +SHOES +SHOP +SHOPPING +SHOUJI +SHOW +SHOWTIME +SI +SILK +SINA +SINGLES +SITE +SJ +SK +SKI +SKIN +SKY +SKYPE +SL +SLING +SM +SMART +SMILE +SN +SNCF +SO +SOCCER +SOCIAL +SOFTBANK +SOFTWARE +SOHU +SOLAR +SOLUTIONS +SONG +SONY +SOY +SPA +SPACE +SPORT +SPOT +SR +SRL +SS +ST +STADA +STAPLES +STAR +STATEBANK +STATEFARM +STC +STCGROUP +STOCKHOLM +STORAGE +STORE +STREAM +STUDIO +STUDY +STYLE +SU +SUCKS +SUPPLIES +SUPPLY +SUPPORT +SURF +SURGERY +SUZUKI +SV +SWATCH +SWIFTCOVER +SWISS +SX +SY +SYDNEY +SYSTEMS +SZ +TAB +TAIPEI +TALK +TAOBAO +TARGET +TATAMOTORS +TATAR +TATTOO +TAX +TAXI +TC +TCI +TD +TDK +TEAM +TECH +TECHNOLOGY +TEL +TEMASEK +TENNIS +TEVA +TF +TG +TH +THD +THEATER +THEATRE +TIAA +TICKETS +TIENDA +TIFFANY +TIPS +TIRES +TIROL +TJ +TJMAXX +TJX +TK +TKMAXX +TL +TM +TMALL +TN +TO +TODAY +TOKYO +TOOLS +TOP +TORAY +TOSHIBA +TOTAL +TOURS +TOWN +TOYOTA +TOYS +TR +TRADE +TRADING +TRAINING +TRAVEL +TRAVELCHANNEL +TRAVELERS +TRAVELERSINSURANCE +TRUST +TRV +TT +TUBE +TUI +TUNES +TUSHU +TV +TVS +TW +TZ +UA +UBANK +UBS +UG +UK +UNICOM +UNIVERSITY +UNO +UOL +UPS +US +UY +UZ +VA +VACATIONS +VANA +VANGUARD +VC +VE +VEGAS +VENTURES +VERISIGN +VERSICHERUNG +VET +VG +VI +VIAJES +VIDEO +VIG +VIKING +VILLAS +VIN +VIP +VIRGIN +VISA +VISION +VIVA +VIVO +VLAANDEREN +VN +VODKA +VOLKSWAGEN +VOLVO +VOTE +VOTING +VOTO +VOYAGE +VU +VUELOS +WALES +WALMART +WALTER +WANG +WANGGOU +WATCH +WATCHES +WEATHER +WEATHERCHANNEL +WEBCAM +WEBER +WEBSITE +WED +WEDDING +WEIBO +WEIR +WF +WHOSWHO +WIEN +WIKI +WILLIAMHILL +WIN +WINDOWS +WINE +WINNERS +WME +WOLTERSKLUWER +WOODSIDE +WORK +WORKS +WORLD +WOW +WS +WTC +WTF +XBOX +XEROX +XFINITY +XIHUAN +XIN +XXX +XYZ +YACHTS +YAHOO +YAMAXUN +YANDEX +YE +YODOBASHI +YOGA +YOKOHAMA +YOU +YOUTUBE +YT +YUN +ZA +ZAPPOS +ZARA +ZERO +ZIP +ZM +ZONE +ZUERICH +ZW \ No newline at end of file diff --git a/Task3/src/com/main/Main.java b/Task3/src/com/main/Main.java new file mode 100644 index 0000000..693f72c --- /dev/null +++ b/Task3/src/com/main/Main.java @@ -0,0 +1,172 @@ +package com.main; + +import com.lib.EmailValidator; +import com.lib.PasswordChecker; +import com.vartotojai.*; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Main { + + public static void main(String[] args) { + menu(); + + } + public static void menu(){ + System.out.println("Pasirinkite:"); + System.out.println("1. Prideti vartotoja"); + System.out.println("2. Gauti vartotoja"); + System.out.println("3. Redakuoti vartotoja"); + System.out.println("4. Istrinti vartotoja"); + System.out.println("0. Baigti darba"); + String param = null; + try { + BufferedReader reader = new BufferedReader( + new InputStreamReader(System.in)); + param = reader.readLine(); + + } catch (Exception e) { + e.printStackTrace(); + } + switch (param){ + case "0": + System.exit(0); + break; + case "1": + Add(); + break; + case "2": + Get(); + break; + case "3": + Edit(); + break; + case "4": + Delete(); + break; + default: + System.out.println("Bad selection!"); + break; + } + menu(); + } + + public static void Add(){ + System.out.println("Parasykite varda,pavarde,numeri,saliesKoda(pvz:LT),elpasta,adresa,slaptazodi (atskirkite kableliu):"); + String name = null; + try { + BufferedReader reader = new BufferedReader( + new InputStreamReader(System.in)); + name = reader.readLine(); + + } catch (Exception e) { + e.printStackTrace(); + } + String[] data = name.split(","); + Veiksmai veiksmai = new Veiksmai(); + int err=veiksmai.Prideti (data[0], data[1], data[2], data[3], data[4], data[5], data[6]); + switch (err){ + case 0: + System.out.println("Prideta"); + break; + case 1: + System.out.println("Nurodytas blogas numeris arba salies kodas"); + break; + case 2: + System.out.println("Nurodytas blogas pastas"); + break; + case 3: + System.out.println("Blogas slaptazodis"); + break; + default: + System.out.println("Kazkas blogai"); + } + + } + public static void Get(){ + System.out.println("Nurodykite vartotojo ID:"); + int id = 0; + try { + BufferedReader reader = new BufferedReader( + new InputStreamReader(System.in)); + id = Integer.parseInt(reader.readLine()); + + } catch (Exception e) { + System.out.println("Blogas id"); + return; + } + Veiksmai veiksmai = new Veiksmai(); + Vartotojas vartotojas = veiksmai.Istraukti(id); + System.out.println("Vartotojas:"+ + " Vardas: " + vartotojas.getVardas()+ + " Pavarde: " + vartotojas.getPavarde()+ + " Numeris: " + vartotojas.getNumeris()+ + " El pastas: " + vartotojas.getEmail()+ + " Adresas: " + vartotojas.getAdresas()+ + " Slaptazodis: " + vartotojas.getSlaptazodis()); + + } + public static void Edit(){ + System.out.println("Nurodykite vartotojo ID:"); + int id = 0; + try { + BufferedReader reader = new BufferedReader( + new InputStreamReader(System.in)); + id = Integer.parseInt(reader.readLine()); + + } catch (Exception e) { + System.out.println("Blogas id"); + return; + } + System.out.println("Parasykite varda,pavarde,numeri,saliesKoda(pvz:LT),elpasta,adresa,slaptazodi (atskirkite kableliu):"); + String name = null; + try { + BufferedReader reader = new BufferedReader( + new InputStreamReader(System.in)); + name = reader.readLine(); + + } catch (Exception e) { + e.printStackTrace(); + } + String[] data = name.split(","); + Veiksmai veiksmai = new Veiksmai(); + int err=veiksmai.Redakuoti (id, data[0], data[1], data[2], data[3], data[4], data[5], data[6]); + switch (err){ + case 0: + System.out.println("Pakeista"); + break; + case 1: + System.out.println("Nurodytas blogas numeris arba salies kodas"); + break; + case 2: + System.out.println("Nurodytas blogas pastas"); + break; + case 3: + System.out.println("Blogas slaptazodis"); + break; + case 4: + System.out.println("Blogas id"); + break; + default: + System.out.println("Kazkas blogai"); + } + } + public static void Delete(){ + System.out.println("Nurodykite vartotojo ID:"); + int id = 0; + try { + BufferedReader reader = new BufferedReader( + new InputStreamReader(System.in)); + id = Integer.parseInt(reader.readLine()); + + } catch (Exception e) { + System.out.println("Blogas id"); + return; + } + Veiksmai veiksmai = new Veiksmai(); + veiksmai.Istrinti(id); + System.out.println("Istrinta"); + } +} diff --git a/Task3/src/com/test/EmailValidatorShould.java b/Task3/src/com/test/EmailValidatorShould.java new file mode 100644 index 0000000..329d934 --- /dev/null +++ b/Task3/src/com/test/EmailValidatorShould.java @@ -0,0 +1,74 @@ +package com.test; + +import com.lib.EmailValidator; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class EmailValidatorShould +{ + + EmailValidator _em; + + @BeforeEach + void setUp() + { + _em = new EmailValidator(); + } + + @Test + void testIfNullWhenNull() { + assertFalse(_em.checkIfExists(null)); + } + + @Test + void testIfNullWhenNotNull() { + assertTrue(_em.checkIfExists("john.smith@gmail.com")); + } + + @Test + void testIfEmptyWhenEmpty() { + assertFalse(_em.checkIfExists("")); + } + + @Test + void testIfEmptyWhenNotEmpty() { + assertTrue(_em.checkIfExists("john.smith@gmail.com")); + } + + @Test + void testIfAtSignExistsWhenExists() { + assertTrue(_em.checkAtSign("john.smith@gmail.com")); + } + @Test + void testIfAtSignExistsWhenMissing() { + assertFalse(_em.checkAtSign("john.smith#gmail.com")); + } + + @Test + void testIfHasIllegalSymbols() { + assertFalse(_em.checkIllegalSymbols("džon.smith@gmail.com")); + } + + @Test + void testIfHasGoodDomainWhenGoodDomain() { + assertTrue(_em.checkDomain("marketingas@mif.vusa.lt")); + } + + @Test + void testIfHasGoodDomainWhenBadDomain() { + assertFalse(_em.checkDomain("marketingas@zodis.lt")); + } + + @Test + void testIfHasGoodTLDWhenGoodTLD() { + assertTrue(_em.checkDomain("marketingas@mif.vusa.lt")); + } + + @Test + void testIfHasGoodTLDWhenBadTLD() { + assertFalse(_em.checkDomain("marketingas@mifsa.asd")); + } +} diff --git a/Task3/src/com/test/LibTest.java b/Task3/src/com/test/LibTest.java new file mode 100644 index 0000000..ad63ec8 --- /dev/null +++ b/Task3/src/com/test/LibTest.java @@ -0,0 +1,56 @@ +package com.test; + +import com.lib.EmailValidator; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import com.vartotojai.*; + +import static org.junit.jupiter.api.Assertions.*; + +public class LibTest { + Veiksmai veiksmai; + + @BeforeEach + void setUp() + { + veiksmai = new Veiksmai(); + } + @Test + void SingleTestModule(){ + int additional_index=4;//Change it acording saved file + veiksmai.Prideti("test","test","+37067123123","LT","test@test.lt","test","Testas123@"); + Vartotojas testvar = veiksmai.Istraukti(additional_index); + assertEquals(testvar.getUserID(), additional_index); + assertEquals(testvar.getVardas(), "test"); + assertEquals(testvar.getPavarde(), "test"); + assertEquals(testvar.getNumeris(), "+37067123123"); + assertEquals(testvar.getEmail(), "test@test.lt"); + assertEquals(testvar.getAdresas(), "test"); + assertEquals(testvar.getSlaptazodis(), "Testas123@"); + veiksmai.Redakuoti(additional_index,"test2","test2","+37067123333","LT","test2@test.lt","test2","Testas222@"); + testvar = veiksmai.Istraukti(additional_index); + assertEquals(testvar.getUserID(), additional_index); + assertEquals(testvar.getVardas(), "test2"); + assertEquals(testvar.getPavarde(), "test2"); + assertEquals(testvar.getNumeris(), "+37067123333"); + assertEquals(testvar.getEmail(), "test2@test.lt"); + assertEquals(testvar.getAdresas(), "test2"); + assertEquals(testvar.getSlaptazodis(), "Testas222@"); + veiksmai.Istrinti(additional_index); + } + @Test + void TestBadPhone(){ + int err = veiksmai.Prideti("test","test","+38067123123","LT","test@test.lt","test","Testas123@"); + assertEquals(err, 1); + } + @Test + void TestBadEmail(){ + int err = veiksmai.Prideti("test","test","+37067123123","LT","testtest.lt","test","Testas123@"); + assertEquals(err, 2); + } + @Test + void TestBadPassword(){ + int err = veiksmai.Prideti("test","test","+37067123123","LT","test@test.lt","test","testas123"); + assertEquals(err, 3); + } +} diff --git a/Task3/src/com/test/PasswordCheckerShould.java b/Task3/src/com/test/PasswordCheckerShould.java new file mode 100644 index 0000000..5c02b2e --- /dev/null +++ b/Task3/src/com/test/PasswordCheckerShould.java @@ -0,0 +1,72 @@ +package com.test; + + +import com.lib.PasswordChecker; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class PasswordCheckerShould +{ + PasswordChecker _psw; + + @BeforeEach + void setUp() + { + _psw = new PasswordChecker(); + } + + @Test + void testIfNullWhenNotNull() { + assertTrue(_psw.checkIfExists("Asd123")); + } + + @Test + void testIfNullWhenNull() { + assertFalse(_psw.checkIfExists(null)); + } + + @Test + void testIfEmptyWhenEmpty() { + assertFalse(_psw.checkIfExists("")); + } + + @Test + void testIfEmptyWhenNotEmpty() { + assertTrue(_psw.checkIfExists("Asd123")); + } + + @Test + void testIfCorrectLenghtWhenCorrectLenght() { + assertTrue(_psw.checkLenght("Asdasd123!")); + } + //check if more than X symbols + + @Test + void testIfCorrectLenghtWhenTooShort() { + assertFalse(_psw.checkLenght("A1!")); + } + //check if less than X symbols + + @Test + void testIfHasUppercaseWhenHasUpperCase() { + assertTrue(_psw.checkUpperCase("Asdasd123!")); + } + + @Test + void testIfHasUppercaseWhenNoUpperCase() { + assertFalse(_psw.checkUpperCase("asdasd123!")); + } + + @Test + void testIfHasSpecialSymbolWhenHasSpecialSymbol() { + assertTrue(_psw.checkSpecialSymbol("Asdasd123!")); + } + + @Test + void testIfHasSpecialSymbolWhenNoSpecialSymbol() { + assertFalse(_psw.checkSpecialSymbol("Asdasd123")); + } +} diff --git a/Task3/src/com/test/PhoneValidatorShould.java b/Task3/src/com/test/PhoneValidatorShould.java new file mode 100644 index 0000000..a13ee59 --- /dev/null +++ b/Task3/src/com/test/PhoneValidatorShould.java @@ -0,0 +1,69 @@ +package com.test; + +import static org.junit.jupiter.api.Assertions.*; + +import com.lib.PhoneValidator; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class PhoneValidatorShould +{ + + PhoneValidator _ph; + + @BeforeEach + void setUp() + { + _ph = new PhoneValidator(); + } + + @Test + void testIfNullWhenNull() { + assertFalse(_ph.checkIfExists(null)); + } + + @Test + void testIfNullWhenNotNull() { + assertTrue(_ph.checkIfExists("+37068353981")); + } + + @Test + void testIfEmptyWhenEmpty() { + assertFalse(_ph.checkIfExists("")); + } + + @Test + void testIfEmptyWhenNotEmpty() { + assertTrue(_ph.checkIfExists("+37068353981")); + } + + @Test + void testifGoodNumberWhenGoodNumber() { + assertTrue(_ph.checkForOtherSymbols("+37068353981")); + } + + @Test + void testIfGoodNumberWhenThereAreLetters() { + assertFalse(_ph.checkForOtherSymbols("+370abc")); + } + + @Test + void testIfChangesWhenNeeded() { + assertEquals("+370", _ph.changeNumberFormer("868353981")); + } + + @Test + void testIfChangesWhenNotNeeded() { + assertEquals("+370", _ph.changeNumberFormer("+37068353981")); + } + + @Test + void testIfCorrectCountryValidationWhenCorrect() { + assertTrue(_ph.checkForValidCountryNumber("+37168353981", "LV")); + } + + @Test + void testIfCorrectCountryValidationWhenWrong() { + assertFalse(_ph.checkForValidCountryNumber("+37068353981", "LV")); + } +} diff --git a/Task3/src/com/vartotojai/Validators.java b/Task3/src/com/vartotojai/Validators.java new file mode 100644 index 0000000..752f54a --- /dev/null +++ b/Task3/src/com/vartotojai/Validators.java @@ -0,0 +1,34 @@ +package com.vartotojai; +/** + * This bridges imported library (to easier switch for different library) + * */ +import com.lib.*; +public class Validators { + private EmailValidator emailValidator = new EmailValidator(); + private PasswordChecker passwordChecker = new PasswordChecker(); + private PhoneValidator phoneValidator = new PhoneValidator(); + public boolean ValidateEmail (String email){ + return emailValidator.checkIfExists(email) && + emailValidator.checkAtSign(email) && + !emailValidator.checkIllegalSymbols(email) && + emailValidator.checkDomain(email); + } + + public boolean ValidatePassword (String password){ + return passwordChecker.checkIfExists(password) && + passwordChecker.checkLenght(password) && + passwordChecker.checkUpperCase(password) && + passwordChecker.checkSpecialSymbol(password); + } + + public boolean ValidatePhone (String phone, String countryCode){ + return phoneValidator.checkIfExists(phone) && + phoneValidator.checkForOtherSymbols(phone) && + phoneValidator.checkForValidCountryNumber(phone, countryCode); + } + + public String NumberFormatChanger(String number){ + if (phoneValidator.changeNumberFormer(number).equals("+370") && number.startsWith("8")) return "+370"+ number.substring(1,number.length()); + return number; + } +} diff --git a/Task3/src/com/vartotojai/Vartotojas.java b/Task3/src/com/vartotojai/Vartotojas.java new file mode 100644 index 0000000..92b5e2a --- /dev/null +++ b/Task3/src/com/vartotojai/Vartotojas.java @@ -0,0 +1,79 @@ +package com.vartotojai; +/** + * Vartotojo object + * */ +public class Vartotojas { + int userID; + String vardas; + String pavarde; + String numeris; + String email; + String adresas; + String slaptazodis; + + public Vartotojas (int id, String vardas, String pavarde, String numeris, String email, String adresas, String slaptazodis){ + this.userID = id; + this.vardas=vardas; + this.pavarde=pavarde; + this.numeris=numeris; + this.email=email; + this.adresas=adresas; + this.slaptazodis=slaptazodis; + } + + public int getUserID() { + return userID; + } + + public void setUserID(int userID) { + this.userID = userID; + } + + public String getVardas() { + return vardas; + } + + public void setVardas(String vardas) { + this.vardas = vardas; + } + + public String getPavarde() { + return pavarde; + } + + public void setPavarde(String pavarde) { + this.pavarde = pavarde; + } + + public String getNumeris() { + return numeris; + } + + public void setNumeris(String numeris) { + this.numeris = numeris; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getAdresas() { + return adresas; + } + + public void setAdresas(String adresas) { + this.adresas = adresas; + } + + public String getSlaptazodis() { + return slaptazodis; + } + + public void setSlaptazodis(String slaptazodis) { + this.slaptazodis = slaptazodis; + } +} diff --git a/Task3/src/com/vartotojai/Veiksmai.java b/Task3/src/com/vartotojai/Veiksmai.java new file mode 100644 index 0000000..292c6c1 --- /dev/null +++ b/Task3/src/com/vartotojai/Veiksmai.java @@ -0,0 +1,114 @@ +package com.vartotojai; +/** + * Library actions (add, get, delete, edit) + * */ +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.util.ArrayList; +import java.util.List; + +public class Veiksmai { + List list = new ArrayList(); + Vartotojas temp; + Validators validate = new Validators(); + public Veiksmai(){ + String row; + try { + BufferedReader csvReader = new BufferedReader(new FileReader("src/com/vartotojai/list.csv")); + while ((row = csvReader.readLine()) != null) { + String[] data = row.split(","); + temp = new Vartotojas(Integer.parseInt(data[0]), data[1], data[2], data[3], data[4], data[5], data[6]); + list.add(temp); + } + csvReader.close(); + }catch (Exception e){ + System.out.println("File could not be readed"); + } + } + public int Prideti(String vardas, String pavarde, String numeris, String saliesKodas, String email, String adresas, String slaptazodis){ + int errcode = ValidateAll(numeris, saliesKodas, email, slaptazodis); + if (errcode!=0) return errcode; + + temp = new Vartotojas(idGenerator(list), vardas,pavarde,validate.NumberFormatChanger(numeris),email,adresas,slaptazodis); + list.add(temp); + SaveList(list); + return 0; + } + + public void Istrinti(int id){ + for (Vartotojas zmogus:list) { + if (zmogus.getUserID()==id) { + list.remove(zmogus); + SaveList(list); + break; + } + } + } + + public Vartotojas Istraukti(int id){ + for (Vartotojas zmogus:list) { + if (zmogus.getUserID()==id) { + return zmogus; + } + } + return null; + } + + public int Redakuoti(int id, String vardas, String pavarde, String numeris, String saliesKodas, String email, String adresas, String slaptazodis){ + int errcode = ValidateAll(numeris, saliesKodas, email, slaptazodis); + if (errcode!=0) return errcode; + temp = new Vartotojas(id, vardas, pavarde, numeris,email,adresas,slaptazodis); + for (Vartotojas zmogus:list) { + if (zmogus.getUserID()==id) { + list.set(list.indexOf(zmogus), temp); + SaveList(list); + return 0; + } + } + return 4;//Not found + } + + private int ValidateAll(String numeris, String saliesKodas, String email, String slaptazodis){ + if (!validate.ValidatePhone(numeris, saliesKodas)) return 1; //Bad phone number + if (!validate.ValidateEmail(email)) return 2; //Bad email + if (!validate.ValidatePassword(slaptazodis)) return 3; //Bad password + return 0; + } + + private void SaveList(List list){ + File myObj = new File("src/com/vartotojai/list.csv"); + myObj.delete(); + try { + FileWriter csvWriter = new FileWriter("src/com/vartotojai/list.csv"); + + for (Vartotojas person:list) { + csvWriter.append(String.valueOf(person.getUserID())); + csvWriter.append(","); + csvWriter.append(person.getVardas()); + csvWriter.append(","); + csvWriter.append(person.getPavarde()); + csvWriter.append(","); + csvWriter.append(person.getNumeris()); + csvWriter.append(","); + csvWriter.append(person.getEmail()); + csvWriter.append(","); + csvWriter.append(person.getAdresas()); + csvWriter.append(","); + csvWriter.append(person.getSlaptazodis()); + csvWriter.append("\n"); + } + csvWriter.flush(); + csvWriter.close(); + }catch (Exception e){ + System.out.println("Failed saving file"); + } + + } + + private int idGenerator (List list){ + if (list.isEmpty()) return 0; + return list.get(list.size() - 1).getUserID()+1; + } +} diff --git a/Task3/src/com/vartotojai/list.csv b/Task3/src/com/vartotojai/list.csv new file mode 100644 index 0000000..a9418c4 --- /dev/null +++ b/Task3/src/com/vartotojai/list.csv @@ -0,0 +1,3 @@ +1,Vardenis1,Pavardenis,+37067123456,example@gmail.com,Vilnius,Pogger123@ +2,Mantass,NeMantas,+37065123456,mantas@gmail.com,Kaunas,nicePogger5% +3,Vardenis3,Pavardenis,+37067123456,example@gmail.com,Vilnius,Pogger123@