package org.apache.archiva.metadata.repository.cassandra.model; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import org.apache.archiva.metadata.model.CiManagement; import org.apache.archiva.metadata.model.Dependency; import org.apache.archiva.metadata.model.IssueManagement; import org.apache.archiva.metadata.model.License; import org.apache.archiva.metadata.model.MailingList; import org.apache.archiva.metadata.model.Organization; import org.apache.archiva.metadata.model.Scm; import org.apache.archiva.metadata.repository.cassandra.CassandraUtils; import java.util.ArrayList; import java.util.List; /** * @author Olivier Lamy * @since 2.0.0 */ public class ProjectVersionMetadataModel { private Namespace namespace; private String id; private String projectId; private String url; private String name; private String description; private Organization organization; private IssueManagement issueManagement; private Scm scm; private CiManagement ciManagement; private List<License> licenses = new ArrayList<>(); private List<MailingList> mailingLists = new ArrayList<>(); private List<Dependency> dependencies = new ArrayList<>(); private boolean incomplete; public String getProjectId() { return projectId; } public void setProjectId( String projectId ) { this.projectId = projectId; } // FIXME must be renamed getVersion !!! public String getId() { return id; } public void setId( String id ) { this.id = id; } public String getUrl() { return url; } public void setUrl( String url ) { this.url = url; } public String getName() { return name; } public void setName( String name ) { this.name = name; } public String getDescription() { return description; } public void setDescription( String description ) { this.description = description; } public Organization getOrganization() { return organization; } public void setOrganization( Organization organization ) { this.organization = organization; } public IssueManagement getIssueManagement() { return issueManagement; } public void setIssueManagement( IssueManagement issueManagement ) { this.issueManagement = issueManagement; } public Scm getScm() { return scm; } public void setScm( Scm scm ) { this.scm = scm; } public CiManagement getCiManagement() { return ciManagement; } public void setCiManagement( CiManagement ciManagement ) { this.ciManagement = ciManagement; } public boolean isIncomplete() { return incomplete; } public void setIncomplete( boolean incomplete ) { this.incomplete = incomplete; } public Namespace getNamespace() { return namespace; } public void setNamespace( Namespace namespace ) { this.namespace = namespace; } public List<License> getLicenses() { return licenses; } public void setLicenses( List<License> licenses ) { this.licenses = licenses; } public List<MailingList> getMailingLists() { return mailingLists; } public void setMailingLists( List<MailingList> mailingLists ) { this.mailingLists = mailingLists; } public List<Dependency> getDependencies() { return dependencies; } public void setDependencies( List<Dependency> dependencies ) { this.dependencies = dependencies; } @Override public String toString() { final StringBuilder sb = new StringBuilder( "ProjectVersionMetadataModel{" ); sb.append( ", namespace=" ).append( namespace ); sb.append( ", id='" ).append( id ).append( '\'' ); sb.append( ", projectId='" ).append( projectId ).append( '\'' ); sb.append( ", url='" ).append( url ).append( '\'' ); sb.append( ", name='" ).append( name ).append( '\'' ); sb.append( ", description='" ).append( description ).append( '\'' ); sb.append( ", organization=" ).append( organization ); sb.append( ", issueManagement=" ).append( issueManagement ); sb.append( ", scm=" ).append( scm ); sb.append( ", ciManagement=" ).append( ciManagement ); sb.append( ", incomplete=" ).append( incomplete ); sb.append( '}' ); return sb.toString(); } public static class KeyBuilder { private String namespace; private String repositoryName; private String projectId; private String projectVersion; private String id; public KeyBuilder() { // no op } public KeyBuilder withNamespace( Namespace namespace ) { this.namespace = namespace.getName(); this.repositoryName = namespace.getRepository().getName(); return this; } public KeyBuilder withNamespace( String namespace ) { this.namespace = namespace; return this; } public KeyBuilder withRepository( String repositoryId ) { this.repositoryName = repositoryId; return this; } public KeyBuilder withProjectId( String projectId ) { this.projectId = projectId; return this; } public KeyBuilder withProjectVersion( String projectVersion ) { this.projectVersion = projectVersion; return this; } public KeyBuilder withId( String id ) { this.id = id; return this; } public String build() { // FIXME add some controls return CassandraUtils.generateKey( this.repositoryName, this.namespace, this.projectId, this.projectVersion, this.id ); } } }