diff --git a/.settings/net.sf.jautodoc.prefs b/.settings/net.sf.jautodoc.prefs new file mode 100644 index 0000000..5dca1a7 --- /dev/null +++ b/.settings/net.sf.jautodoc.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +filter_fields=false +project_specific_settings=true +replacements=\n\n\nGets the\nSets the\nAdds the\nEdits the\nRemoves the\nInits the\nParses the\nCreates the\nBuilds the\nChecks if is\nPrints the\nChecks for\n\n\n diff --git a/src/fr/devinsy/kiss4web/BuildInformation.java b/src/fr/devinsy/kiss4web/BuildInformation.java index c35b8db..ff41f5e 100644 --- a/src/fr/devinsy/kiss4web/BuildInformation.java +++ b/src/fr/devinsy/kiss4web/BuildInformation.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2021 Christian Pierre MOMON + * Copyright (C) 2013-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -74,43 +74,80 @@ public class BuildInformation } } + /** + * Author. + * + * @return the string + */ public String author() { return this.author; } + /** + * Builds the date. + * + * @return the string + */ public String buildDate() { return this.buildDate; } + /** + * Builds the number. + * + * @return the string + */ public String buildNumber() { return this.buildNumber; } + /** + * Generator. + * + * @return the string + */ public String generator() { return this.generator; } + /** + * Major revision. + * + * @return the string + */ public String majorRevision() { return this.majorRevision; } + /** + * Minor revision. + * + * @return the string + */ public String minorRevision() { return this.minorRevision; } + /** + * Product name. + * + * @return the string + */ public String productName() { return this.productName; } /** - * + * To string. + * + * @return the string */ @Override public String toString() @@ -125,8 +162,9 @@ public class BuildInformation } /** - * - * @return + * Version. + * + * @return the string */ public String version() { diff --git a/src/fr/devinsy/kiss4web/Kiss4web.java b/src/fr/devinsy/kiss4web/Kiss4web.java index 5d2c520..cf05cf7 100644 --- a/src/fr/devinsy/kiss4web/Kiss4web.java +++ b/src/fr/devinsy/kiss4web/Kiss4web.java @@ -43,8 +43,6 @@ import fr.devinsy.kiss4web.dispatcher.hooks.XHTMLHook; */ public class Kiss4web { - private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Kiss4web.class); - /** * The Enum Mode. */ @@ -65,6 +63,8 @@ public class Kiss4web private static final Kiss4web instance = new Kiss4web(); } + private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Kiss4web.class); + private BuildInformation buildInformation; private Mode mode; @@ -231,7 +231,7 @@ public class Kiss4web /** * Sets the mode custom. * - * @param register + * @param hooks * the new mode custom */ public void setModeCustom(final HookRegister hooks) diff --git a/src/fr/devinsy/kiss4web/Kiss4webLauncher.java b/src/fr/devinsy/kiss4web/Kiss4webLauncher.java index f821b14..37f24e8 100644 --- a/src/fr/devinsy/kiss4web/Kiss4webLauncher.java +++ b/src/fr/devinsy/kiss4web/Kiss4webLauncher.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Christian Pierre MOMON + * Copyright (C) 2021-2023 Christian Pierre MOMON * * This file is part of Juga, simple key value database. * @@ -37,6 +37,9 @@ public class Kiss4webLauncher implements javax.servlet.ServletContextListener { private static Logger logger = LoggerFactory.getLogger(Kiss4webLauncher.class); + /** + * {@inheritDoc} + */ @Override public void contextDestroyed(final ServletContextEvent sce) { @@ -53,6 +56,9 @@ public class Kiss4webLauncher implements javax.servlet.ServletContextListener /** * Inits the logger. + * + * @param webappRoot + * the webapp root */ public void initLogger(final String webappRoot) { diff --git a/src/fr/devinsy/kiss4web/Page.java b/src/fr/devinsy/kiss4web/Page.java index 5b6aa6d..82a4dd9 100644 --- a/src/fr/devinsy/kiss4web/Page.java +++ b/src/fr/devinsy/kiss4web/Page.java @@ -1,35 +1,20 @@ /** - * Copyright 2021 Christian Pierre MOMON, DEVINSY, UMR 7186 LESC. + * Copyright (C) 2021-2023 Christian Pierre MOMON * - * christian.momon@devinsy.fr + * This file is part of Kiss4web. * - * This file is part of Kiwa. This software (Kiwa) is a computer program whose - * purpose is to be the Kinsources Web Application, an open interactive platform - * for archiving, sharing, analyzing and comparing kinship data used in - * scientific inquiry. + * Kiss4web is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * - * This software is governed by the CeCILL license under French law and abiding - * by the rules of distribution of free software. You can use, modify and/ or - * redistribute the software under the terms of the CeCILL license as circulated - * by CEA, CNRS and INRIA at the following URL "http://www.cecill.info". + * Kiss4web is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. * - * As a counterpart to the access to the source code and rights to copy, modify - * and redistribute granted by the license, users are provided only with a - * limited warranty and the software's author, the holder of the economic - * rights, and the successive licensors have only limited liability. - * - * In this respect, the user's attention is drawn to the risks associated with - * loading, using, modifying and/or developing or reproducing the software by - * the user in light of its specific status of free software, that may mean that - * it is complicated to manipulate, and that also therefore means that it is - * reserved for developers and experienced professionals having in-depth - * computer knowledge. Users are therefore encouraged to load and test the - * software's suitability as regards their requirements in conditions enabling - * the security of their systems and/or data to be ensured and, more generally, - * to use and operate it in the same conditions as regards security. - * - * The fact that you are presently reading this means that you have had - * knowledge of the CeCILL license and that you accept its terms. + * You should have received a copy of the GNU Lesser General Public License + * along with Kiss4web. If not, see */ package fr.devinsy.kiss4web; @@ -50,22 +35,46 @@ public abstract class Page private HttpServletRequest request; private HttpServletResponse response; + /** + * Instantiates a new page. + * + * @param request + * the request + * @param response + * the response + * @throws ServletException + * the servlet exception + * @throws IOException + * Signals that an I/O exception has occurred. + */ public Page(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { this.request = request; this.response = response; } + /** + * Do get. + */ public void doGet() { } + /** + * Do post. + */ public void doPost() { } + /** + * Redirect. + * + * @param urlPath + * the url path + */ public void redirect(final String urlPath) { Redirector.redirect(this.response, urlPath); diff --git a/src/fr/devinsy/kiss4web/Redirector.java b/src/fr/devinsy/kiss4web/Redirector.java index 5223622..eb76f1e 100644 --- a/src/fr/devinsy/kiss4web/Redirector.java +++ b/src/fr/devinsy/kiss4web/Redirector.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2021 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -28,8 +28,6 @@ import org.slf4j.LoggerFactory; */ public class Redirector { - private static final Logger logger = LoggerFactory.getLogger(Redirector.class); - public enum Type { MOVED_PERMANENTLY(HttpServletResponse.SC_MOVED_PERMANENTLY), @@ -42,6 +40,11 @@ public class Redirector this.statusCode = value; } + /** + * Status code. + * + * @return the int + */ public int statusCode() { int result; @@ -53,6 +56,8 @@ public class Redirector } } + private static final Logger logger = LoggerFactory.getLogger(Redirector.class); + /** * Redirect. * diff --git a/src/fr/devinsy/kiss4web/SimpleSecurityAgent.java b/src/fr/devinsy/kiss4web/SimpleSecurityAgent.java index 730221c..753f60b 100644 --- a/src/fr/devinsy/kiss4web/SimpleSecurityAgent.java +++ b/src/fr/devinsy/kiss4web/SimpleSecurityAgent.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2021 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * diff --git a/src/fr/devinsy/kiss4web/dispatcher/KissDispatcher.java b/src/fr/devinsy/kiss4web/dispatcher/KissDispatcher.java index 6b58675..5f9d1d3 100755 --- a/src/fr/devinsy/kiss4web/dispatcher/KissDispatcher.java +++ b/src/fr/devinsy/kiss4web/dispatcher/KissDispatcher.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2021 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -67,7 +67,15 @@ public class KissDispatcher extends HttpServlet * "/good/morning-/12/toto.jpg" => "good.Morning" ('12' and 'toto.jpg" are detected as a parameter, they * will be decoded in the class called later). * - * + * + * @param request + * the request + * @param response + * the response + * @throws IOException + * Signals that an I/O exception has occurred. + * @throws ServletException + * the servlet exception */ public void dispatch(final HttpServletRequest request, final HttpServletResponse response) throws IOException, ServletException { diff --git a/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherFactory.java b/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherFactory.java index c9d4488..c04531b 100644 --- a/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherFactory.java +++ b/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherFactory.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2021 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -36,13 +36,13 @@ import org.slf4j.LoggerFactory; */ public class KissDispatcherFactory { - private static Logger logger = LoggerFactory.getLogger(KissDispatcherFactory.class); - private static class SingletonHolder { private static final KissDispatcherFactory instance = new KissDispatcherFactory(); } + private static Logger logger = LoggerFactory.getLogger(KissDispatcherFactory.class); + private KissDispatcherCache cache; /** @@ -53,6 +53,9 @@ public class KissDispatcherFactory this.cache = new KissDispatcherCache(); } + /** + * Clear cache. + */ public void clearCache() { this.cache.clear(); @@ -147,21 +150,11 @@ public class KissDispatcherFactory } /** - * Checks if is availableget path. + * Checks if is available path. * - * @param servletConfig - * the servlet config - * @param request - * the request - * @param response - * the response * @param urlPath * the url path - * @return true, if is availableget path - * @throws IOException - * Signals that an I/O exception has occurred. - * @throws ServletException - * the servlet exception + * @return true, if is available path */ public boolean isAvailablePath(final String urlPath) { diff --git a/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherUtils.java b/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherUtils.java index d442997..8b3b042 100644 --- a/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherUtils.java +++ b/src/fr/devinsy/kiss4web/dispatcher/KissDispatcherUtils.java @@ -44,14 +44,14 @@ import fr.devinsy.strings.StringList; */ public class KissDispatcherUtils { - private static Logger logger = LoggerFactory.getLogger(KissDispatcherUtils.class); - public enum ContentDispositionType { ATTACHMENT, INLINE } + private static Logger logger = LoggerFactory.getLogger(KissDispatcherUtils.class); + /** * Builds the class name. * @@ -204,9 +204,9 @@ public class KissDispatcherUtils /** * Instanciate servlet. * - * @param className - * the class name - * @return the http servlet or null if no one found. + * @param classPathname + * the class pathname + * @return the http servlet */ public static HttpServlet instanciateServlet(final String classPathname) { diff --git a/src/fr/devinsy/kiss4web/dispatcher/WebsiteClasspaths.java b/src/fr/devinsy/kiss4web/dispatcher/WebsiteClasspaths.java index 0e03f44..226d0aa 100644 --- a/src/fr/devinsy/kiss4web/dispatcher/WebsiteClasspaths.java +++ b/src/fr/devinsy/kiss4web/dispatcher/WebsiteClasspaths.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2021 Christian Pierre MOMON + * Copyright (C) 2021-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -76,8 +76,8 @@ public class WebsiteClasspaths extends StringList /** * Instanciate servlet. * - * @param subClasspath - * the sub classpath + * @param className + * the class name * @return the http servlet */ public HttpServlet instanciateServlet(final String className) diff --git a/src/fr/devinsy/kiss4web/dispatcher/hooks/HookRegister.java b/src/fr/devinsy/kiss4web/dispatcher/hooks/HookRegister.java index d5a96ed..d3ec022 100644 --- a/src/fr/devinsy/kiss4web/dispatcher/hooks/HookRegister.java +++ b/src/fr/devinsy/kiss4web/dispatcher/hooks/HookRegister.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2021 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -33,6 +33,9 @@ public class HookRegister /** * Instantiates a new hook register. + * + * @param name + * the name */ public HookRegister(final String name) { @@ -91,6 +94,11 @@ public class HookRegister return result; } + /** + * Gets the name. + * + * @return the name + */ public String getName() { return this.name; @@ -116,6 +124,7 @@ public class HookRegister * * @param hook * the hook + * @return the hook register */ public HookRegister register(final Hook hook) { @@ -129,6 +138,12 @@ public class HookRegister return result; } + /** + * Register all. + * + * @param register + * the register + */ public void registerAll(final HookRegister register) { this.hooks.addAll(register.getHooks()); diff --git a/src/fr/devinsy/kiss4web/dispatcher/hooks/LongURLRewriter.java b/src/fr/devinsy/kiss4web/dispatcher/hooks/LongURLRewriter.java index 10d45ae..5aebeaf 100644 --- a/src/fr/devinsy/kiss4web/dispatcher/hooks/LongURLRewriter.java +++ b/src/fr/devinsy/kiss4web/dispatcher/hooks/LongURLRewriter.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2021 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -74,7 +74,12 @@ public class LongURLRewriter * * * Note: "-/" is used to indicate the beginning of parameters. - * + * + * @param path + * the path + * @param parameters + * the parameters + * @return the string */ public static String rewrite(final String path, final String... parameters) { diff --git a/src/fr/devinsy/kiss4web/security/Group.java b/src/fr/devinsy/kiss4web/security/Group.java index db62ccd..60d8c24 100644 --- a/src/fr/devinsy/kiss4web/security/Group.java +++ b/src/fr/devinsy/kiss4web/security/Group.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2010, 2013-2016 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -21,7 +21,7 @@ package fr.devinsy.kiss4web.security; import java.util.Vector; /** - * + * The Class Group. */ public class Group { @@ -29,8 +29,8 @@ public class Group private Vector members; /** - * - */ + * Instantiates a new group. + */ public Group() { this.name = null; @@ -38,8 +38,11 @@ public class Group } /** - * - */ + * Adds the member. + * + * @param login + * the login + */ public void addMember(final String login) { if ((login != null) && (login.length() != 0)) @@ -49,8 +52,12 @@ public class Group } /** - * - */ + * Contains. + * + * @param name + * the name + * @return true, if successful + */ public boolean contains(final String name) { boolean result = false; @@ -62,8 +69,10 @@ public class Group } /** - * - */ + * Members. + * + * @return the vector + */ public Vector members() { Vector result; @@ -75,8 +84,10 @@ public class Group } /** - * - */ + * Name. + * + * @return the string + */ public String name() { String result; @@ -88,8 +99,12 @@ public class Group } /** - * - */ + * Sets the name. + * + * @param name + * the name + * @return the group + */ public Group setName(final String name) { this.name = name; @@ -99,8 +114,10 @@ public class Group } /** - * - */ + * To string. + * + * @return the string + */ @Override public String toString() { @@ -112,5 +129,3 @@ public class Group return (result); } } - -// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/kiss4web/security/GroupsFileReader.java b/src/fr/devinsy/kiss4web/security/GroupsFileReader.java index 797a665..2cce428 100644 --- a/src/fr/devinsy/kiss4web/security/GroupsFileReader.java +++ b/src/fr/devinsy/kiss4web/security/GroupsFileReader.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2010, 2013-2016 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -23,13 +23,19 @@ import java.util.Iterator; import java.util.Properties; /** - * + * The Class GroupsFileReader. */ public class GroupsFileReader { /** - * - */ + * Load. + * + * @param fileName + * the file name + * @return the groups + * @throws Exception + * the exception + */ public static Groups load(final String fileName) throws Exception { Groups result; diff --git a/src/fr/devinsy/kiss4web/security/SecurityAgent.java b/src/fr/devinsy/kiss4web/security/SecurityAgent.java index 0e2c816..3a86949 100644 --- a/src/fr/devinsy/kiss4web/security/SecurityAgent.java +++ b/src/fr/devinsy/kiss4web/security/SecurityAgent.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2010, 2013-2016 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -21,7 +21,7 @@ package fr.devinsy.kiss4web.security; import java.util.Iterator; /** - * + * The Class SecurityAgent. */ public class SecurityAgent { @@ -30,8 +30,13 @@ public class SecurityAgent private Groups permissions; /** - * - */ + * Instantiates a new security agent. + * + * @param path + * the path + * @throws Exception + * the exception + */ public SecurityAgent(final String path) throws Exception { this.users = UsersFileReader.load(path + "users.conf"); @@ -40,8 +45,14 @@ public class SecurityAgent } /** - * - */ + * Authenticate. + * + * @param login + * the login + * @param password + * the password + * @return true, if successful + */ public boolean authenticate(final String login, final String password) { boolean result; @@ -66,8 +77,14 @@ public class SecurityAgent } /** - * - */ + * Check permission. + * + * @param url + * the url + * @param login + * the login + * @return true, if successful + */ public boolean checkPermission(final String url, final String login) { boolean result = false; @@ -124,8 +141,10 @@ public class SecurityAgent } /** - * - */ + * Groups. + * + * @return the groups + */ public Groups groups() { Groups result; @@ -137,8 +156,10 @@ public class SecurityAgent } /** - * - */ + * Permissions. + * + * @return the groups + */ public Groups permissions() { Groups result; @@ -150,8 +171,10 @@ public class SecurityAgent } /** - * - */ + * Users. + * + * @return the users + */ public Users users() { Users result; diff --git a/src/fr/devinsy/kiss4web/security/User.java b/src/fr/devinsy/kiss4web/security/User.java index c1f9b43..07523df 100644 --- a/src/fr/devinsy/kiss4web/security/User.java +++ b/src/fr/devinsy/kiss4web/security/User.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2010, 2013-2016 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -19,7 +19,7 @@ package fr.devinsy.kiss4web.security; /** - * + * The Class User. */ public class User { @@ -29,8 +29,8 @@ public class User private String email; /** - * - */ + * Instantiates a new user. + */ public User() { this.login = null; @@ -40,8 +40,10 @@ public class User } /** - * - */ + * Email. + * + * @return the string + */ public String email() { String result; @@ -53,8 +55,10 @@ public class User } /** - * - */ + * Login. + * + * @return the string + */ public String login() { String result; @@ -66,8 +70,10 @@ public class User } /** - * - */ + * Password. + * + * @return the string + */ public String password() { String result; @@ -79,8 +85,10 @@ public class User } /** - * - */ + * Real name. + * + * @return the string + */ public String realName() { String result; @@ -92,8 +100,12 @@ public class User } /** - * - */ + * Sets the email. + * + * @param email + * the email + * @return the user + */ public User setEmail(final String email) { this.email = email; @@ -103,8 +115,12 @@ public class User } /** - * - */ + * Sets the login. + * + * @param login + * the login + * @return the user + */ public User setLogin(final String login) { this.login = login; @@ -114,8 +130,12 @@ public class User } /** - * - */ + * Sets the password. + * + * @param password + * the password + * @return the user + */ public User setPassword(final String password) { this.password = password; @@ -125,8 +145,12 @@ public class User } /** - * - */ + * Sets the real name. + * + * @param realName + * the real name + * @return the user + */ public User setRealName(final String realName) { this.realName = realName; @@ -136,8 +160,8 @@ public class User } /** - * - */ + * {@inheritDoc} + */ @Override public String toString() { diff --git a/src/fr/devinsy/kiss4web/security/Users.java b/src/fr/devinsy/kiss4web/security/Users.java index 04f4f46..2baca5f 100644 --- a/src/fr/devinsy/kiss4web/security/Users.java +++ b/src/fr/devinsy/kiss4web/security/Users.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2010, 2013-2014 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -22,22 +22,26 @@ import java.util.Iterator; import java.util.Vector; /** - * + * The Class Users. */ public class Users extends Vector { private static final long serialVersionUID = 6140538630004281217L; /** - * - */ + * Instantiates a new users. + */ public Users() { super(); } - /* + /** + * Contains. * + * @param login + * the login + * @return true, if successful */ public boolean contains(final String login) { @@ -57,8 +61,12 @@ public class Users extends Vector } /** - * - */ + * Gets the by login. + * + * @param login + * the login + * @return the by login + */ public User getByLogin(final String login) { User result; @@ -96,8 +104,8 @@ public class Users extends Vector } /** - * - */ + * {@inheritDoc} + */ @Override public String toString() { @@ -119,5 +127,3 @@ public class Users extends Vector return (result); } } - -// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/kiss4web/security/UsersFileReader.java b/src/fr/devinsy/kiss4web/security/UsersFileReader.java index 72a7db2..5a9b100 100644 --- a/src/fr/devinsy/kiss4web/security/UsersFileReader.java +++ b/src/fr/devinsy/kiss4web/security/UsersFileReader.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2006-2010, 2013-2016 Christian Pierre MOMON + * Copyright (C) 2006-2023 Christian Pierre MOMON * * This file is part of Kiss4web. * @@ -23,13 +23,19 @@ import java.util.Iterator; import java.util.Properties; /** - * + * The Class UsersFileReader. */ public class UsersFileReader { /** - * - */ + * Load. + * + * @param fileName + * the file name + * @return the users + * @throws Exception + * the exception + */ public static Users load(final String fileName) throws Exception { Users result; @@ -69,5 +75,3 @@ public class UsersFileReader return (result); } } - -// ////////////////////////////////////////////////////////////////////////