package org.axway.grapes.commons.datamodel; import org.axway.grapes.commons.exceptions.UnsupportedScopeException; /** * Data Model Object Factory * * <p>Factory that handles Data Models Objects creation.</p> * * @author jdcoffre */ public final class DataModelFactory { // Utility class, though no constructor private DataModelFactory() {} /** * Generates an organization regarding the parameters. * * @param name String * @return Organization */ public static Organization createOrganization(final String name){ final Organization organization = new Organization(); organization.setName(name); return organization; } /** * Generates a module regarding the parameters. * * @param name String * @param version String * @return Module */ public static Module createModule(final String name,final String version){ final Module module = new Module(); module.setName(name); module.setVersion(version); module.setPromoted(false); return module; } /** * Generates an artifact regarding the parameters. * * <P> <b>WARNING:</b> The parameters grId/arId/version should be filled!!! Only classifier and type are not mandatory. * * @param groupId String * @param artifactId String * @param version String * @param classifier String * @param type String * @param extension String * @return Artifact */ public static Artifact createArtifact(final String groupId, final String artifactId, final String version, final String classifier, final String type, final String extension){ final Artifact artifact = new Artifact(); artifact.setGroupId(groupId); artifact.setArtifactId(artifactId); artifact.setVersion(version); if(classifier != null){ artifact.setClassifier(classifier); } if(type != null){ artifact.setType(type); } if(extension != null){ artifact.setExtension(extension); } return artifact; } /** * Generates a License regarding the parameters. * * @param name String * @param longName String * @param comments String * @param regexp String * @param url String * @return License */ public static License createLicense(final String name, final String longName, final String comments, final String regexp, final String url){ final License license = new License(); license.setName(name); license.setLongName(longName); license.setComments(comments); license.setRegexp(regexp); license.setUrl(url); return license; } /** * Generates a dependency regarding the parameters. * * @param artifact Artifact * @param scope Scope * @return Dependency */ public static Dependency createDependency(final Artifact artifact, final Scope scope){ final Dependency dependency = new Dependency(); dependency.setTarget(artifact); dependency.setScope(scope); return dependency; } /** * Generates a dependency regarding the parameters. * * @param artifact Artifact * @param scope String * @return Dependency * @throws UnsupportedScopeException */ public static Dependency createDependency(final Artifact artifact, final String scope) throws UnsupportedScopeException{ try{ final Scope depScope = Scope.valueOf(scope.toUpperCase()); return createDependency(artifact, depScope); } catch(IllegalArgumentException e){ throw new UnsupportedScopeException(); } } }