1 /* 2 * dpkg - Debian Package library and the Debian Package Maven plugin 3 * (c) Copyright 2016 Gerrit Hohl 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 2 8 * of the License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 */ 19 package net.sourceforge.javadpkg.control.impl; 20 21 import net.sourceforge.javadpkg.BuildException; 22 import net.sourceforge.javadpkg.Context; 23 import net.sourceforge.javadpkg.control.PackageName; 24 import net.sourceforge.javadpkg.control.PackageNameBuilder; 25 26 27 /** 28 * <p> 29 * A {@link PackageNameBuilder} implementation. 30 * </p> 31 * 32 * @author Gerrit Hohl (gerrit-hohl@users.sourceforge.net) 33 * @version <b>1.0</b>, 28.04.2016 by Gerrit Hohl 34 */ 35 public class PackageNameBuilderImpl implements PackageNameBuilder { 36 37 38 /** 39 * <p> 40 * Creates a builder. 41 * </p> 42 */ 43 public PackageNameBuilderImpl() { 44 super(); 45 } 46 47 48 @Override 49 public String buildPackageName(PackageName name, Context context) throws BuildException { 50 String result; 51 52 53 if (name == null) 54 throw new IllegalArgumentException("Argument name is null."); 55 if (context == null) 56 throw new IllegalArgumentException("Argument context is null."); 57 58 result = name.getName(); 59 if (!result.matches("[a-z]{1}[a-z0-9+-.:]+")) 60 throw new BuildException("Package name |" + result + "| doesn't match the rules for package names."); 61 62 return result; 63 } 64 65 66 }